gpt4 book ai didi

java - 如何从本地目录加载resources.properties,而不是Java中的JAR?

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

我有一个使用 Guice 和 JavaFX 的 Java 应用程序,需要可配置资源。

我正在尝试使用 https://github.com/dueni/faces-ext/blob/master/resourcebundle/src/main/java/ch/dueni/util/MultiplePropertiesResourceBundle.java 加载多个资源

我能够从 JAR 加载这两个资源文件,但我希望能够从用户有权修改它们的本地目录加载它们。

我尝试将它们发送到 AppData,但我希望该文件位于更可配置的位置,例如安装文件夹。我也不知道是否可以从包外部加载属性文件。

目前这是如何使用 ClassLoader 加载资源:

      ClassLoader cl = Thread.currentThread().getContextClassLoader();
List<String> bundleNames = new ArrayList<String>();
try {
String baseFileName = baseName + ".properties";
String resourcePath = getResourcePath();
String resourceName = resourcePath + baseFileName;
if (isLoggable) {
LOG.logp(Level.FINE, CLASS, METHOD, "Looking for files named '" + resourceName + "'");
}
Enumeration<URL> names = cl.getResources(resourceName);

我希望能够通过自定义函数获取名称,该函数在指定目录中搜​​索资源文件。

这有可能吗?

最佳答案

是的,这是可能的。我希望我正确理解了您的问题。

1)使用您想要的路径创建文件,例如:

settingsFile = new File(System.getProperty("user.home") + "/{Project}/settings.xml");
settingsFile.getParentFile().mkdirs();
settingsFile.createNewFile();

该路径指向用户的默认目录(对我来说,C:\users\meiswjn{Project}),但您可以使用任何目录。

2)使用properties.put(..)设置默认值。

3) 保存属性。

FileWriter fileWriter = new FileWriter(settingsFile);
BufferedWriter propWriter = new BufferedWriter(fileWriter);
props.store(propWriter, "Comment");
propWriter.close();
fileWriter.close();

4) 您可以使用以下方式读取属性:

FileReader fileReader = new FileReader(settingsFile);
BufferedReader reader = new BufferedReader(fileReader);
props.load(reader);
fileReader.close();
reader.close();

希望这有帮助。

关于java - 如何从本地目录加载resources.properties,而不是Java中的JAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57822330/

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