gpt4 book ai didi

java - 属性文件在 jar 内不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 08:48:30 25 4
gpt4 key购买 nike

当我尝试使独立 Java 应用程序成为可运行的 jar 时,我遇到属性文件问题。我有 2 个属性文件,具体取决于其运行属性文件被初始化的机器。在 eclipse 里面它工作得很好。我正在使用:

Properties configProps = new Properties();
....
if(machine1)
....
configProps.load(Config.class.getResourceAsStream("machine1.properties"));
else
configProps.load(Config.class.getResourceAsStream("machine2.properties"));

它与 Config.java 一样工作,并且属性位于同一个包中。最重要的是,我在项目的根目录中有 log4j 属性。当我制作 Jar 时,这也不起作用。

如何处理当前的情况。我知道将属性文件放在 jar 之外是个好主意。我该如何实现这一目标。

请帮忙。

最佳答案

只有当您需要写入该属性文件(用于配置)时,将属性文件放在 jar 之外才是一个好主意。鉴于您的命名,我认为它是用于配置的。

对于只读,如果属性文件正确打包在 Jar 中,您的方法就很好。是吗?您是否已经使用 jar tf MyJar.jar 达到了内容的顶峰?它是否在正确的路径中显示您的属性文件?

在哪里存储配置文件是一个更广泛的问题。这是一篇很好的文章,研究了它的几个方面(即放置它的位置):What is the proper way to store app's conf data in Java?

在我看来,您想选择一个位置(请参阅上面的文章)。完成此操作后,第一次运行应用程序时,您应该像您尝试执行的那样从 Jar 文件加载默认属性,然后立即将它们保存到您选择的位置。然后,然后,从该位置读取并写入该位置。您将需要使用 FileInputStream/FileOutputStream。

关于java - 属性文件在 jar 内不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3874203/

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