我有一个 Maven 项目,我使用 Maven 程序集插件创建一个具有依赖项的 jar。我还有一个外部配置文件(conf.properties),jar 需要它才能正常工作。
我的项目结构是这样的:
|- abc.jar
|- config
|-conf.properties
如何将此配置文件夹添加到 jar 文件的类路径中?我尝试使用 -cp
命令并操作 MANIFEST.MF
文件中的类路径属性来执行此操作,但到目前为止没有运气。
有人知道如何做到这一点吗?
最佳答案
这就是我测试的方式(抱歉,没有maven)!
主类:
package cfh.sf.Chamika;
import java.util.ResourceBundle;
public class ABC {
public static void main(String[] args) {
var bundle = ResourceBundle.getBundle("conf");
System.out.println(bundle.getString("test"));
}
}
list 文件,注意末尾有空行(条目必须以换行符(CR、LF 或 CRLF)结尾):
Manifest-Version: 1.0
Main-Class: cfh.sf.Chamika.ABC
Class-Path: config/
目录结构
dist/
abc.jar
config/
conf.properties
conf.properties的内容:
test = OK, it is working!
执行方式
java -jar abc.jar
<小时/>
替代方案,不使用ResourceBundle
:
package cfh.sf.Chamika;
import java.io.IOException;
public class ABC {
public static void main(String[] args) {
try (var input = ClassLoader.getSystemResourceAsStream("conf.properties")) {
int ch;
while ((ch = input.read()) != -1) {
System.out.print((char) ch);
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
关于java - 将外部文件夹添加到可运行 jar 中的 ClassPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60495325/