我用以下内容阅读了几个文件:
new File(Thread.currentThread().getContextClassLoader().getResource("Configuration.txt")).getFile());
哪个适用于构建的项目和mvn测试,但是一旦我尝试执行jar文件,这些调用就是null。这些文件实际存在于jar中。 这可能有什么问题?
我的pom-part用于构建jar(我现在没有相关的依赖关系):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>path.to.mainclass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
资源文件位于标准文件夹src / main / resources
中答案 0 :(得分:0)
当您使用mvn test
或从IDE运行测试时,您可以从文件系统访问物理文件,但是当您使用带有压缩资源的jar时,您无法使用File
类或getFile()
方法。您应该使用getClass().getResource()
来电或getClass().getResourceAsStream()
。