Яка різниця у eclipse між експортом як файл JAR та експортом як файл JAR, що виконується? Хіба не можна обох ними керувати? Які плюси / мінуси кожного?
Яка різниця у eclipse між експортом як файл JAR та експортом як файл JAR, що виконується? Хіба не можна обох ними керувати? Які плюси / мінуси кожного?
Відповіді:
Запускний jar містить файл MANIFEST.MF, який визначає основний клас, який буде виконуватися під час запуску jar.
Не запускаються банки - це просто бібліотеки класів, які можна додати до шляху до класу, щоб код був використаний повторно (він також містить файл маніфесту, але там немає основного класу)
Запущений jar - це файл jar, який має вбудований файл Manifest, що включає декларацію "Main-Class:". Потрібно визначити "Основний клас", щоб час виконання Java знав, який клас викликати при "запуску" jar. Якщо jar не містить маніфест із "Main-Class:", він не вважається "jarnable jar" - це просто бібліотека коду Java.
Я гадаю, це різниця в тому, як Eclipse експортує банку, але не впевнена на 100%.
Див. Це посилання для отримання додаткової інформації: http://www.skylit.com/javamethods/faqs/createjar.html
За допомогою стандартного файлу JAR вам потрібно вказати клас за допомогою основного методу в командному рядку під час запуску jar. У JAR, який можна запустити, є файл маніфесту, який зберігатиме цю інформацію, щоб ви могли просто ввести java -jar myRunnable.jar
або просто двічі клацнути по ній.
У моєму випадку я експортував як jar, коли мав весь основний клас та усі каталоги шляху бібліотек, вказані в manifest.mf. Якщо багато програм використовують одну і ту ж бібліотеку, не потрібно експортувати спільну бібліотеку для кожної банки. Це робить баночку швидшою. Але багато разів через проблему конфігурації в різних класах шляху сервера не вдається отримати доступ до бібліотеки, і в цьому випадку має сенс експортувати керовану банку, що робить файл повільним у виконанні та великим.