java - 访问与工作目录相同级别的 .properties 文件

标签 java properties jar

我正在开发一个 Java 项目,我想将其作为 .jar 文件交付给我的客户。但是,我希望允许客户端能够更改程序的参数,而无需重新编译或重新创建 .jar。基本上,我希望能够从 .jar 内的类加载 .properties 文件,但将这些 .properties 文件定位在 .jar 之外,甚至在工作目录之外。

我一直在 Eclipse 中测试我的尝试,这可能会导致一些问题,但我目前不知道如何解决。我的设置如下。我有一个项目,其中包含一些我从中构建 .jar 文件的类。我有一个 .properties 文件,用于在创建 .jar 的类时创建 ResourceBundle。我指定将附加目录“conf/”包含在 .jar list 内的 .jar 类路径中。

构建 .jar 文件后,它会被复制到我用于测试的另一个项目的 lib/目录中。此测试项目将 .jar 文件作为库(“添加外部 Jars..”)包含在 Java 构建路径中。 .properties 文件位于 conf/目录,该目录与 lib/、src/和 bin/处于同一级别,但我无法在那里访问它。我能够让它工作的唯一方法是在 src/(和 bin/)下找到conf/,但我希望能够在上一级使用它。这可能吗?

这是 .jar list 文件中的条目...

Class-Path: ../conf/

这是我尝试过的 ResourceBundle 调用(不起作用)...

rb = ResourceBundle.getBundle("..conf.BaseProject");

这是现在有效的目录结构(名称已更改以保护无辜者)...

/Project
/Project/bin
/Project/bin/conf
/Project/bin/conf/BaseProject.properties
/Project/bin/TestClass.class
/Project/lib
/Project/lib/BaseProject.jar

这是我想要的目录布局(同样,文件名并不重要)...

/Project
/Project/bin
/Project/bin/TestClass.class
/Project/conf
/Project/conf/BaseProject.properties
/Project/lib
/Project/lib/BaseProject.jar

最佳答案

可以获取using the Classloader .

关于java - 访问与工作目录相同级别的 .properties 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/976521/

相关文章:

java - 我可以在一个 jar 文件中合并多个 jar 文件吗

java - 从 JAR 读取/写入 .txt 文件

java - 应该如何访问已编译 jar 中的资源?

java - 解析远程服务器上的日期时间

java - 当我使用 Java API 从插件打印时,IBM Rhapsody 日志为空

java - 循环绘制不同的图像?

java - 如何使用@JoinColumn 和@MapsId 在@OneToOne 关系中设置外键名称

class - 德尔福 2009 : Component Object property default value

c# - 使用反射检测属性上的访问修饰符类型

C# WPF 迭代子项和更改属性的更好方法