我正在开发一个Java项目,我希望将其作为.jar文件提供给我的客户端。但是,我想允许客户端能够更改程序的参数,而无需重新编译或重新创建.jar。基本上,我希望能够从.jar中的类加载.properties文件,但是在.jar之外,甚至在工作目录之外找到那些.properties文件。
我一直在测试我在Eclipse中的尝试,这可能会导致一些问题,但我现在还没看到。我的设置如下。我有一个项目,其中包含一些我从中构建.jar文件的类。我有一个.properties文件,用于在创建.jar的类时创建ResourceBundle。我指定在.jar清单中的.jar类路径中包含一个额外的目录“conf /”。
构建.jar文件后,它将被复制到我用于测试的另一个项目的lib /目录中。此测试项目在.java Build Path中将.jar文件作为库(“Add External Jars ..”)包含在内。 .properties文件位于conf /目录下,与lib /,src /和bin /处于同一级别,但我无法在那里使用它。我能够让它工作的唯一方法是在src /(和bin /)下找到conf /,但我希望能够在一个级别上使用它。这可能吗?
这是.jar清单文件中的条目...
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