В чем разница в eclipse между экспортом в виде файла JAR и экспортом в виде файла Runnable JAR? Разве они оба не работают? Какие плюсы / минусы у каждого?
87
Runnable jar содержит файл MANIFEST.MF, который определяет основной класс, который будет выполняться при запуске jar.
Неиспользуемые jar-файлы - это просто библиотеки классов, которые можно добавить в путь к классам, чтобы код можно было повторно использовать (он также содержит файл манифеста, но не содержит основного класса)
Запускаемый jar - это jar-файл, в котором есть встроенный файл манифеста, который включает объявление «Main-Class:». «Главный класс» должен быть определен, чтобы среда выполнения java знала, какой класс вызывать, когда jar «запущен». Если jar не включает манифест с «Main-Class:», он не считается «работающим jar» - это просто библиотека кода Java.
Я бы предположил, что это разница в том, как Eclipse экспортирует банку, но не уверен на 100%.
См. Эту ссылку для получения дополнительной информации: http://www.skylit.com/javamethods/faqs/createjar.html
источник
В стандартном файле JAR вы должны указать класс с основным методом в командной строке при запуске jar. В работающем JAR есть файл манифеста, который будет содержать эту информацию, поэтому вы можете просто ввести его
java -jar myRunnable.jar
или просто дважды щелкнуть по нему.источник
В моем случае я использовал экспорт как банку, когда у меня был весь основной класс и все каталоги пути к библиотекам, указанные в manifest.mf. Если несколько приложений используют одну и ту же библиотеку, нет необходимости экспортировать общую библиотеку для каждой банки. Это ускоряет работу банки. Но во многих случаях из-за проблем с конфигурацией в другом пути к классу сервера невозможно получить доступ к библиотеке, и в этом случае имеет смысл экспортировать исполняемый jar, который замедляет выполнение файла и делает его большим.
источник