Доступ к pom.xml в банке - PullRequest
0 голосов
/ 28 июня 2018
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);

при вызове этого я не знаю, что использовать для вызывающего объекта, поэтому я просто установил нулевую строку в качестве вызывающего объекта, и он говорит об исключении нулевого указателя.

Также я где-то видел, что мне нужно использовать JarInputStream для доступа к JarFile. Но я понятия не имею, используя его. Помоги мне!

1 Ответ

0 голосов
/ 28 июня 2018

Допустим, вы в классе Main, MainClass:

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

Имейте в виду, что путь должен начинаться с косой черты (абсолютный путь), иначе он будет относительно каталога пакета этого класса.

...