我有两个项目 - foo和bar。 Foo是主要项目,它取决于酒吧项目。 Foo也是保存配置文件(conf.xml)的项目。这些项目被打包成独立的罐子。 Conf.xml包含在foo.jar中,主类访问它:
MyApp.class.getClassLoader().getResource("conf.xml");
要在命令行上运行这些i:
java -cp "*" com.example.MyApp
一切正常。
我的问题是,有时我想在不重建项目的情况下更改conf.xml。所以我想从jar中取出conf.xml,这样我就可以自己编辑了。那么问题是jar中的类不能再找到conf.xml了。这可以在不更改我的类中的代码的情况下修复吗?
答案 0 :(得分:0)
两个指针:
注意“/”这告诉java在类路径的根目录中找到它。我假设文件位于运行程序的目录中。
答案 1 :(得分:0)
您有几种选择。
您可以提取配置文件,进行编辑并将其放回原位:
# extract conf.xml from the jar
jar xf path/to.jar conf.xml
# edit the extracted conf.xml with your favorite editor
# ...
# put conf.xml back
jar uf path/to.jar conf.xml
或者不是把它放回去,你可以保留在目录中而不将其添加回jar,并在jar之前将容器目录添加到classpath:
java -cp .:path/to.jar com.example.MyApp