当前位置: 首页 > 知识库问答 >
问题:

如何加载jar文件中的属性文件

孔阳炎
2023-03-14

如何加载放置在可执行jar文件的资源文件夹中的属性文件。在这里,我的应用程序本身就是一个jar,它自己执行。它需要在运行时根据代码中提到的路径找到这个属性文件(放在资源文件夹下)。我用过以下两种方法,但都没用。这里的重点是,当我在eclipse中执行时,这两个选项都可以正常工作,但当我将其打包到可执行jar中时,这两个选项都不起作用。它抛出NullPointerException。我在这里看到的唯一问题是,jar无法选择具有给定路径的属性文件。任何帮助都将不胜感激。

方法1:使用Apache Commons配置

 URL propFileURL = XYZ.class.getClassLoader().getResource("/config.properties");
Configuration propertyConfiguration = null;             
propertyConfiguration = new PropertiesConfiguration(propFileURL);

在上述情况下,我得到了ConfigurationException。类无法找到给定路径中提到的文件。

方法2:使用getResourceAsStream。我知道,如果我们要从网络上的任何其他位置加载文件,getResource都不起作用。

InputStream is =XYZ.class.getClassLoader().getResourceAsStream("/config.properties");
Properties prop = new Properties();
prop.load(is);

在这种情况下,我得到了nullPointerException。如果你需要更多细节,请告诉我。

罐子内容继承权

Properties file - /java-file-io-application/src/main/resources/config.properties
XYZ class - /java-file-io-application/src/main/java/org/bc/xyz/iplugin/utilities/XYZ.java

共有1个答案

岑鸣
2023-03-14

看起来你可能建错罐子了。来自“src/main/resources”的文件应该位于jar文件的根目录下。如果您的jar文件包含'src/main/resources'目录,那么您的构建就出了问题。

 类似资料:
  • 问题内容: 我手动将属性文件注入到jar中。如何从Java 1.7之前的jar文件中加载属性?我尝试了许多解决方法,但到目前为止没有任何效果。 关于它有很多问题,但是所有内容都集中在Java 1.7的ClassLoader方法上。 问题答案: 当您在类路径中或jar文件中具有属性文件时,它将成为资源。其他任何情况都是一个简单的文件。 在打包jar文件之前,需要做的是将属性文件所在的文件夹(即myp

  • 我无法加载位于jar (project.service.jar)中的db.properties,它被war文件(project-web.war)引用。输出war将jar放在we b-INF/lib/project . service . jar中。rest war也使用jar,它使用jar中的一些服务。当战争开始时,我无法加载位于服务的jar文件中的db.properties。prop文件具有要在

  • 我在尝试添加

  • 我有两个项目,CarpoolDB和拼车。 CarpoolDB:包含后端的东西 拼车应用程序上下文。xml server.properties 我做了一罐carpoolDB和地方拼车应用程序 拼车:包含UI东西和后端联系人carpoolDB jar,并具有 carpool-application-context1.xml spring-servlet.xml 拼车。性质 现在,我有一个类com.on

  • 问题内容: 因此,我正在尝试向项目添加一些功能,以允许在部署工件中使用用户定义的属性-一个简单的key:value .properties文件。我将service.properties文件放在 在ServiceImpl.java构造函数中,我具有以下内容: 属性URL的所有实例均为空。我知道我确实缺少某些明显的东西,但是我需要第二双眼睛。问候。 编辑: 嗯,似乎我很困惑,因为默认的GAE项目在/

  • 如何创建支持多种环境的项目架构?在Spring的帮助下,每个环境将具有来自不同属性文件(dev-propertfile,test-propertfil,propertyfile)的不同数据源