gpt4 book ai didi

java - 无法从 JAR 加载属性

转载 作者:行者123 更新时间:2023-12-01 19:15:18 25 4
gpt4 key购买 nike

几天来,我一直在尝试让我的 Java 项目从位于其 JAR 文件中的文件加载一些属性。但是,当我尝试加载文件时,我不断收到空指针。

文件夹层次结构的属性文件位于/data 中,所有源文件位于/emp/**/** ...

代码

Properties defaultProps = new Properties();
try {
InputStream in = getClass().getClassLoader().getResourceAsStream("data/build_info.properties");
//InputStream in = new URL("file:data/build_info.properties").openStream();

defaultProps.load(in);
in.close();
} catch (FileNotFoundException e) {
//e.printStackTrace();
} catch (IOException e) {
//e.printStackTrace();
} catch (NullPointerException e){
Log.E("NPE- Properties not loaded", "properties");
revision = "Properties file not found";
}

if (defaultProps.getProperty("build.major.number") == null) {
Log.W("Properties not loaded", "properties");
revision = "Properties file not found";
} else {
Log.V("Properties Loaded Successfully", "properties");

revision = "Version: " + defaultProps.getProperty("build.major.number")
+ "." + defaultProps.getProperty("build.minor.number") + " "
+ "Revision: "
+ defaultProps.getProperty("build.revision.number");
}

最佳答案

如果data位于jar的根目录中,并且如果build_info.properties位于jar的数据目录中,并且如果jar位于类路径上,然后 getClass().getClassLoader().getResourceAsStream("data/build_info.properties"); 将找到该属性文件。您还可以使用 getClass().getResourceAsStream("/data/build_info.properties");

如果 getClass() 返回的类加载器所加载的类与类路径中包含您的 jar 的类加载器不同,则可能会出现特殊情况。

关于java - 无法从 JAR 加载属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6917905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com