我有一个基本的可执行JAR,其中包含MainClass和其他一些jar依赖项,其中包含manifest.txt。
我想将我的配置文件"application.properties“从jar移到一个易于配置/维护的目录中。java代码执行一个简单的ResourceBundle.getBundle('application.props')来加载它。
我有一个目录设置,如下所示:
/bin/run.sh
/lib/stuff.jar
/common/application.properties我的run.sh看起来像这样:
TOOLNAME="stuff.jar"
CLASSPATH="../common"
java -cp ${CLASSPATH} -Dapplication.props=application -jar ../lib/${TOOLNAME}.jar &当我运行这段代码时,jar就会运行,但似乎仍然无法找到application.properties文件。
我不确定这是不是因为manifest.txt覆盖了我的-D参数。我还想知道,是否可以将这个"../common“文件夹的类路径移动到manifest.txt中?
发布于 2010-10-02 03:34:22
问题出在您的参数-jar。如果指定该参数,则忽略参数-cp。
您可以将类路径放入清单中,此处指定的路径是相对于jar的周围路径的。如果在其中指定../common,则可以将application.properties作为资源进行访问。
https://stackoverflow.com/questions/3842399
复制相似问题