gpt4 book ai didi

java - 对java属性文件位置感到困惑

转载 作者:IT老高 更新时间:2023-10-28 20:28:22 27 4
gpt4 key购买 nike

我有一个结构简单的java项目:

包 com.abc:
一个.java
b.java
c.properties

我在 c.properties 文件中配置了数据库配置参数。在 a.java 和 b.java 中,我正在加载属性文件:

Properties p = new Properties();
InputStream in = this.getClass().getResourceAsStream("c.properties");
p.load(in);

这很好用。但主要问题是,一旦我通过导出此代码准备可执行 jar,属性文件也会打包在 jar 文件中。如果其他人想为不同的数据库配置修改属性文件,他该怎么做?我是否必须将属性文件存储在本地机器的某个固定位置。例如“C:/”。然后将 jar 连同属性文件一起交给其他人。然后他需要在 C:/位置复制属性文件?还有一个问题,我怎样才能使这个位置对 windows 和 linux 机器通用?

最佳答案

处理此问题的典型方法是从您的嵌入文件加载基本属性,并允许应用程序的用户指定具有覆盖的附加文件。一些伪代码:

Properties p = new Properties();
InputStream in = this.getClass().getResourceAsStream("c.properties");
p.load(in);

String externalFileName = System.getProperty("app.properties");
InputStream fin = new FileInputStream(new File(externalFileName));
p.load(fin);

您的程序将被调用,类似于:

java -jar app.jar -Dapp.properties="/path/to/custom/app.properties"

关于java - 对java属性文件位置感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9150990/

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