Итак, я написал один класс с методом 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 при создании банки.Я не использовал его, но он есть (если он работает, его действительно стоит использовать, потому что он должен позаботиться о конфликтах библиотек).Спасибо за помощь.