Java 从JAR 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.

在阅读了关于这个主题的大约50条不同的线索之后,我还没有找到任何解决方案

我试图做的是访问jar中的config.properties文件

我的项目是一个Maven项目,架构如下:

  • 我的项目
    • src/main/java
      • myApp
        • MyClass.java
    • src/main/resources
      • icon.jpg
      • config.properties
因此,当我尝试从Eclipse访问它时,它与以下代码配合得非常好:

InputStream configFile=MyClass.class.getResourceAsStream(“config.properties”);
接下来是检索属性的更多代码…(有效)

然而,当我将项目导出到一个可运行的JAR时,它就不再工作了。在jar中,文件如下所示:

  • File.jar
    • MyApp
      • 这里是files.class
      • 等等
    • META-INF
    • 资源
      • icon.jpg
      • config.properties
试试这个:

InputStream configFile = MyClass.class.getResourceAsStream("resources/config.properties");
请尝试以下操作:

InputStream input = AnyClass.class.getResourceAsStream("/config.properties");

它应该可以工作。

pom.xml
文件中发布
部分您的构建jar文件中确实有
资源
文件夹吗?如果是,我假设您的配置/目录布局或pom配置错误…这是我的pom.xml
4.0.0 myapp myapp 0.0.1-SNAPSHOT myapphttp://localhost:9000      
看起来您正在使用Eclipse导出jar。不要那样做。配置maven,以便它创建正确的jar清单,并使用maven构建的输出。我的pom.xml中仍然没有,罐子坏了。我在eclipse中得到一个NullPointerException仍然不起作用。我想我已经尝试了所有的可能性,但都不起作用。试试
Thread.currentThread().getContextClassLoader()
istead of
MyClass.class
。试着用斜杠和不用斜杠…我以前做过。它在eclipse中工作,但在生成jar时不工作。