Java Eclipse: Різниця між експортом як JAR та експортом як JAR, що працює


87

Яка різниця у eclipse між експортом як файл JAR та експортом як файл JAR, що виконується? Хіба не можна обох ними керувати? Які плюси / мінуси кожного?

Відповіді:


98

Запускний jar містить файл MANIFEST.MF, який визначає основний клас, який буде виконуватися під час запуску jar.

Не запускаються банки - це просто бібліотеки класів, які можна додати до шляху до класу, щоб код був використаний повторно (він також містить файл маніфесту, але там немає основного класу)


Коли ми експортуємо файл як jar, замість виконуваного jar, ми маємо вказати основний клас та шлях до бібліотеки в manifest.mf.
MR AND

20

Запущений jar - це файл jar, який має вбудований файл Manifest, що включає декларацію "Main-Class:". Потрібно визначити "Основний клас", щоб час виконання Java знав, який клас викликати при "запуску" jar. Якщо jar не містить маніфест із "Main-Class:", він не вважається "jarnable jar" - це просто бібліотека коду Java.

Я гадаю, це різниця в тому, як Eclipse експортує банку, але не впевнена на 100%.

Див. Це посилання для отримання додаткової інформації: http://www.skylit.com/javamethods/faqs/createjar.html


17

За допомогою стандартного файлу JAR вам потрібно вказати клас за допомогою основного методу в командному рядку під час запуску jar. У JAR, який можна запустити, є файл маніфесту, який зберігатиме цю інформацію, щоб ви могли просто ввести java -jar myRunnable.jarабо просто двічі клацнути по ній.


0

У моєму випадку я експортував як jar, коли мав весь основний клас та усі каталоги шляху бібліотек, вказані в manifest.mf. Якщо багато програм використовують одну і ту ж бібліотеку, не потрібно експортувати спільну бібліотеку для кожної банки. Це робить баночку швидшою. Але багато разів через проблему конфігурації в різних класах шляху сервера не вдається отримати доступ до бібліотеки, і в цьому випадку має сенс експортувати керовану банку, що робить файл повільним у виконанні та великим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.