gpt4 book ai didi

java - 无法在类路径中找到 gradle dist 构建的属性文件

转载 作者:行者123 更新时间:2023-12-02 06:51:58 24 4
gpt4 key购买 nike

(gradle新手)

Java 程序使用类加载器 getResourceAsStream 函数从类路径读取属性文件。程序在eclipse中运行没有错误。执行 distZip gradle 任务生成的批处理文件会导致以下错误

Exception in thread "main" java.io.FileNotFoundException: property file 'prop.properties' not found in the classpath
at com.foo.bar.fb.utility.PropResourceCache.getProperties(PropResourceCache.java:26)
at com.foo.bar.fb.offline.RunOfflineProcess.main(RunOfflineProcess.java:40) Press any key to continue . . .

我认为这是由于 list 文件中未包含属性造成的。有没有办法将所有属性文件包含在程序的 src/main/resources/Properties 目录中?最好的做法是什么?

gradle构建入口

jar.doFirst{
manifest {
attributes(
"Manifest-Version" : "1.0",
"Built-By" : System.getProperty('user.name'),
"Built-Date" : new Date(),
"Main-Class" : mainClassName,
"Class-Path" : configurations.runtime.collect{ "lib/"+it.getName() }.join(' ')
)
}
}

访问属性文件

    public Properties getProperties(String propFileName) throws IOException {
String name = File.pathSeparator+"Properties"+File.separator+propFileName;
Properties props = new Properties();
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(name);

if (inputStream == null) {
throw new FileNotFoundException("property file '" + name
+ "' not found in the classpath");
}
props.load(inputStream);

return props;
}

最佳答案

src/main/resources(不是src/main/resource)下的所有内容都会自动包含在 Jar 中。您可以通过解压 Jar 来验证这一点。

关于java - 无法在类路径中找到 gradle dist 构建的属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17929253/

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