作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个需要附加到 jar 的属性文件的 java 程序。因此,我将程序打包并解压缩以附加属性文件。我有一个类 MyClass,它需要属性文件。因此,我基本上将属性文件放在与 MyClass.class 相同的文件夹中。然后我把它震回来。
在我的 MyClass.java 中,我尝试通过以下方式访问属性:
Properties prop = new Properties();
prop.load(MyClass.class.getClassLoader().getResourceAsStream("prop.properties"));
prop.properties 与我的 MyClass.class 位于同一文件夹中。
加载失败。任何帮助将不胜感激!
谢谢
最佳答案
ClassLoader.getResourceAsStream()
将路径视为相对于类路径的根,即它在类加载器上的每个 JAR 或目录的根级别查找资源。
您可能需要Class.getResourceAsStream
,它将路径视为相对于相关类的包。您还需要确保在阅读完该流后关闭该流。
Properties prop = new Properties();
InputStream in = MyClass.class.getResourceAsStream("prop.properties");
try {
prop.load(in);
} finally {
in.close();
}
如果MyClass
位于com.example
包中,那么这将从JAR加载com/example/prop.properties
。
关于java - 在 jar 文件中加载属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15711482/
我是一名优秀的程序员,十分优秀!