【问题标题】:Accessing to pom.xml in jar访问 jar 中的 pom.xml
【发布时间】: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


【解决方案1】:

假设你在主类,MainClass:

MainClass.class.getResourceAsStream("/....");

请注意路径必须以斜杠(绝对路径)开头,否则它将相对于该类的包目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多