Maven:可执行JAR无法找到资源

时间:2017-03-22 21:19:31

标签: java eclipse maven jar

我使用插件

创建了一个带有maven的可执行jar
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>pack.Main</mainClass>
                        </manifest>
                        <manifestEntries>
                            <Class-Path>.</Class-Path> 
                        </manifestEntries>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id> 
                        <phase>package</phase> 
                        <goals>
                            <goal>single</goal> 
                        </goals>
                    </execution>
                </executions>
            </plugin>

我拥有src/min/resources文件夹中的所有依赖项。在我构建jar后,我使用归档管理器解压缩它,我可以在根级别看到所有依赖项。

以下是我尝试访问资源的方法

ClassLoader classLoader = getClass().getClassLoader();
dataIn = new MarkableFileInputStreamFactory(
                    new File(classLoader.getResource("trainingData").getFile()));

这在Eclipse中运行得很好。但是当我尝试运行可执行jar文件时,我得到了

java -jar target/my-0.0.1-SNAPSHOT-jar-with-dependencies.jar -o 1
java.io.FileNotFoundException: File 'file:/path/to/myProject/target/my-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/trainingData' cannot be found

为什么JVM正在寻找File 'file:/path/to/myProject/target/my-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/trainingData'

我该怎么做才能解决这个问题?

0 个答案:

没有答案