Eclipse не распознает банку, которую я создал с помощью One-JAR - PullRequest
0 голосов
/ 22 марта 2012

Итак, я написал один класс с методом main, который зависит от другого jar-файла, который зависит от многих jar-файлов.Чтобы упростить задачу, я использовал One-JAR и создал один исполняемый файл jar.Я создал банку в порядке, я смог ее запустить:

java -jar foo.jar 

Это успешно выполняет мое основное приложение.

Далее я создал новый проект в Eclipse и добавил foo.jar в путь сборки через «add external jar» (я делаю это все время, и это всегда работает).По какой-то причине в моем проекте Eclipse он жалуется, что не распознает импорт пакетов из foo.jar.

Я рассматривал предыдущие вопросы о проблемах с jar в Eclipse, но ни один из них не помог.Я подозреваю, что это как-то связано с деревом, которое создает One-Jar, но, поскольку «java -jar foo.jar» из командной строки работает нормально, я не понимаю, почему Eclipse не видит файлы классов.

Спасибо!

Обновление: Вот как выглядит мой foo.jar, созданный One-Jar:

META-INF     OneJar.class com          doc          lib          main

внутри main:

main     main.jar

внутри этого главного дерева пакетовмое приложение с файлами .class.Теперь, если я включу «main.jar» в Eclipse, он распознает мое приложение.Но тогда он не распознает другие зависимости в lib /, поэтому он генерирует исключения во время выполнения.

Обновление 2: проблема с One-jar и Eclipse не решена, но кто-то упомянул плагин Eclipse с толстыми банками, поэтому я попробовал его, и он отлично справился со своей задачей.Созданная баночка работала с Eclipse и Maven.Они на самом деле также поддерживают One-Jar, вы можете выбрать опцию One-Jar при создании банки.Я не использовал его, но он есть (если он работает, его действительно стоит использовать, потому что он должен позаботиться о конфликтах библиотек).Спасибо за помощь.

1 Ответ

0 голосов
/ 22 марта 2012

Затмение не поймет банки внутри банок. Лучше, чтобы другие jar были включены для построения пути отдельно.

...