【发布时间】:2018-12-07 02:58:33
【问题描述】:
public static void main(String[] args) throws IOException {
String filePath = args[0];
JarFile jar = new JarFile(new File(filePath));
Enumeration<JarEntry> zipEntries = jar.entries();
String pomPath = null;
for (JarEntry entry : Collections.list(zipEntries)) {
if (entry.getName().contains("pom.xml")) {
pomPath = entry.getName();
System.out.println(pomPath);
}
}
}
现在它会打印出 pom.xml 在 jar 文件中的位置。 META-INF/maven/~~~~/~~~~/pom.xml
现在我想访问 pom.xml 文件。 我做了一些研究,我认为我需要使用以下之一
InputStream is = obj.getClass().getClassLoader().getResourceAsStream(pomPath);
调用这个的时候,我不知道调用obj用什么,所以我只是将空字符串设置为调用对象,它说空指针异常。
另外,我在某处看到我需要使用JarInputStream 来访问JarFile。
但我不知道使用它。帮帮我!
【问题讨论】:
-
不使用obj.getClass(),直接使用类名即可。说 Foo 是你在 jar 中的类之一。 Foo.class.getClassLo ..... 我猜 pomPath 应该以 / 开头
-
请告诉我们,为什么你想访问
pom.xml?这对我来说就像XY Problem。
标签: java xml parsing jar inputstream