我在 com.me.X.jar 中运行程序。
在外部 com.me.Y.jar 中,我有一个配置文件,位于Jar根目录中的“ config / conf.txt ”。
如何从Java中以编程方式访问此配置文件?
com.me.Y.jar 当前未加载到内存中,仅由非代码资源组成。
答案 0 :(得分:2)
jar文件只是zip文件。所以谷歌举例说明如何阅读zip文件。或者查看API ZipInputStream
答案 1 :(得分:2)
阅读嵌入资源的最简单方法是使用Class.getResource
或Class.getResourceAsStream
根据您的需要,我可以考虑几种方法来实现这一目标。
将com.me.Y.jar
添加到类路径中。您可以在系统级别(不是真正推荐)或在推荐行...
java -cp com.me.Y.jar -jar com.me.X.jar
编辑有人指出,使用上述命令显然会忽略-cp
参数,但是,如果包含主类,它将起作用... {{1} (例如)
如果这不方便,您可以将java -cp com.me.Y.jar -jar com.me.X.jar com.me.x.Main
添加到com.me.Y.jar
manifest's class path,这会自动包含com.me.X.jar
。
如果您不能这样做,可以使用com.me.Y.jar
直接加载URLClassLoader
...
com.me.Y.jar
或者,如果您愿意,您可以使用java.util.JarFile
简单地打开罐子,但这似乎很像用核武器破解核桃......恕我直言
答案 2 :(得分:1)
URL configURL = this.getClass().getResource("/config/conf.txt");
<{1}} 的Manifest.mf
请参阅Adding Classes to the JAR File's Classpath。
com.me.X.jar