Java: найти основной класс файла JAR на веб-сайте - PullRequest
4 голосов
/ 02 марта 2012

Я пишу программу, которая подключается к веб-хосту, у которого есть каталог, содержащий пару файлов JAR. Затем в графическом интерфейсе отображается имя JAR, и при двойном щелчке по имени открывается файл JAR.

Проблема, с которой я столкнулся, заключается в том, что не все файлы JAR содержат метод main в одном и том же месте, поэтому мне нужен какой-то способ найти основной класс.

Я попытался сделать такой подход:

    File file = new File("website/test.jar");
    JarFile jar = new JarFile(file);
    String mainClass = jar.getManifest().getMainAttributes().get("Main-Class").toString();

Однако я получаю:

Exception in thread "main" java.util.zip.ZipException: error in opening zip file

В строке, где создается объект JarFile. Я подумал о двух решениях: пройти через все файлы классов в JAR и найти тот, который содержит метод main, или создать текстовый файл в каталоге, который сообщает основной файл каждого JAR.

Я бы предпочел использовать первое решение, потому что на самом деле оно не требует от меня делать дополнительные шаги каждый раз, когда я загружаю другой JAR. Однако я обеспокоен тем, что это своего рода альтернатива "грубой силы", и она кажется неэффективной.

Кто-нибудь из вас испытывал подобные проблемы? Большое спасибо!

1 Ответ

3 голосов
/ 02 марта 2012
...