【发布时间】:2013-09-17 20:29:10
【问题描述】:
我正在运行一个 GUI 应用程序 (A.jar)。然后我在这个 GUI(A.jar) 中添加了一个插件 (B.jar)。 现在我想访问 B.jar 中的 manifest.mf 文件。我试过 B.class.getResourceAsInputStream("/META-INF/MANIFEST.MF")。但是,我得到的是 A.jar 中的 manifest.mf,而不是 B.jar。
谁能给我一些关于这个问题的提示?非常感谢。
【问题讨论】:
-
如何添加插件?什么是 B.class?
-
你可以这样尝试:- public void readXmlFile(){ JarFile jarFile = new JarFile(pathToJar2); JarEntry entry = jarFile.getJarEntry("/test.xml"); InputStream inputStream = jarFile.getInputStream(entry);}
-
由于 jar 是 zip,请尝试从运行 A.jar 中解压缩 B.jar(或排除所需文件)并阅读您需要的内容。
-
class.getResourceAsInputStream将搜索您的当前目录,这将是您调用方法的类文件的位置目录(A.jar)。您可能需要classloader从 B.jar 加载类,然后调用.getResourceAsInputStream() -
@RahulTripathi 似乎我们有一个可能的答案;)
标签: java jar embedded-resource manifest.mf