Java 从JAR Maven项目中访问属性文件
在阅读了关于这个主题的大约50条不同的线索之后,我还没有找到任何解决方案 我试图做的是访问jar中的config.properties文件 我的项目是一个Maven项目,架构如下:Java 从JAR Maven项目中访问属性文件,java,eclipse,maven,jar,properties,Java,Eclipse,Maven,Jar,Properties,在阅读了关于这个主题的大约50条不同的线索之后,我还没有找到任何解决方案 我试图做的是访问jar中的config.properties文件 我的项目是一个Maven项目,架构如下: 我的项目 src/main/java myApp MyClass.java src/main/resources icon.jpg config.properties 因此,当我尝试从Eclipse访问它时,它与以下代码配合得非常好: InputStream configFile=MyClass.
- 我的项目
- src/main/java
- myApp
- MyClass.java
- myApp
- src/main/resources
- icon.jpg
- config.properties
- src/main/java
InputStream configFile=MyClass.class.getResourceAsStream(“config.properties”);
接下来是检索属性的更多代码…(有效)
然而,当我将项目导出到一个可运行的JAR时,它就不再工作了。在jar中,文件如下所示:
- File.jar
- MyApp
- 这里是files.class
- 等等
- META-INF
- 资源
- icon.jpg
- config.properties
- MyApp
InputStream configFile = MyClass.class.getResourceAsStream("resources/config.properties");
请尝试以下操作:
InputStream input = AnyClass.class.getResourceAsStream("/config.properties");
它应该可以工作。在
pom.xml
文件中发布
部分您的构建jar文件中确实有资源
文件夹吗?如果是,我假设您的配置/目录布局或pom配置错误…这是我的pom.xml4.0.0 myapp myapp 0.0.1-SNAPSHOT myapphttp://localhost:9000
看起来您正在使用Eclipse导出jar。不要那样做。配置maven,以便它创建正确的jar清单,并使用maven构建的输出。我的pom.xml中仍然没有,罐子坏了。我在eclipse中得到一个NullPointerException代码>仍然不起作用。我想我已经尝试了所有的可能性,但都不起作用。试试Thread.currentThread().getContextClassLoader()
istead ofMyClass.class
。试着用斜杠和不用斜杠…我以前做过。它在eclipse中工作,但在生成jar时不工作。