我正在开发一个 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/