gpt4 book ai didi

java - 将外部文件夹添加到可运行 jar 中的 ClassPath

转载 作者:行者123 更新时间:2023-12-02 08:55:43 25 4
gpt4 key购买 nike

我有一个 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/

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