小编典典

在.jar之外访问属性文件?

java

我正在整理一个.jar文件。我想创建一个非常简单的.properties文件,其中包含诸如用户名和其他内容之类的可配置内容,以便他们可以手动编辑,而不必包括GUI编辑器。

我想做的是能够按此顺序搜索:

  1. 指定的属性文件(args[0]
  2. 当前目录(调用Java的目录)中的MyApp.properties
  3. 用户目录中的MyApp.properties(user.home系统属性?)
  4. 存储应用程序.jar的目录中的MyApp.properties

我知道如何访问#1和#3(我认为),但是如何确定运行时#2和#4?


阅读 216

收藏
2020-10-07

共1个答案

小编典典

#2是
user.dir”
系统属性。#3是“
user.home”属性。

#4不管您如何处理都是一点点麻烦。如果您是从JAR加载的类不在系统类路径上,则这是一种替代技术,该技术可以工作。

CodeSource src = MyClass.class.getProtectionDomain().getCodeSource();
if (src != null) {
  URL url = new URL(src.getLocation(), "MyApp.properties");
  ...
} 
else {
  /* Fail... */
}
2020-10-07