Створіть проект у JAR автоматично у Eclipse


171

У мене є проект Eclipse, в якому я хочу автоматично зберігати свій проект Java в JAR. Я знаю, що у мене є можливість експорту проекту в JAR; якщо я натискаю правою кнопкою миші; але те, що я насправді шукаю, це те, що, як Eclipse, автоматично створює .classфайли проекту та розміщує їх у цільовій папці; він також повинен автоматично створити JAR і скопіювати останню JAR в певне або певне місце.

Чи є можливість налаштувати Eclipse таким чином, щоб автоматично створити JAR?

Просто, щоб зрозуміти хлопцям, достатньо терплячих, щоб відповісти на моє запитання; Я не розглядаю ANT як рішення; як я вже його використовую, але як би мені хотілося, щоб це щось починалося автоматично або за допомогою часового тригера, або негайного складання зі зміною.


1
Моя особиста думка: Використовуйте m2e, інтеграцію Eclipse Maven, щоб вона видавала банку як частину збірки. Нещодавно я намагався використовувати Eclipse без Maven і не можу повірити, наскільки примітивний базовий Java-конструктор.
Крейг Рінгер

1
Для 2018 року використовуйте інструмент збирання замість специфічної функціональності IDE. Maven купує вам незалежність IDE та підтримку командного рядка.
Thorbjørn Ravn Andersen

@Craig Ringer - чи є посилання щодо того, як це зробити?
nsandersen

Відповіді:


27

Перевірте Apache Ant

Можна використовувати Ant для автоматичних побудов із затемненням, ось як


Я вже використовую мурашник Apache для складання та створення Jar. Але те, що я насправді шукав, - це шлях навколо мурашиного апаша і безпосередньо використання затемнення.
Приянк

Вибачте, я раніше не переглядав статтю за посиланням. Це дійсно говорить про те, що мені потрібно. Дякую.
Приянк

1
Відповідь Конрада більше відповідає тому, що шукала ОП.
lycono

lycono, я не згоден - ОП хотів, щоб баночка була оновлена, і експорт файлу jar не намагається вирішити цю проблему.
Джеймс Мур

1
У липні 2011 року стаття, на яку посилається @Peter, зовсім не розповідає про те, як створити файл jar.
Джеймс Мур

288

Ви хочете .jardescфайл. Вони не починаються автоматично, але це за 2 кліки.

  1. Клацніть правою кнопкою миші на вашому проекті
  2. Виберіть Export > Java > JAR file
  3. Виберіть включені файли та виведіть ім'я JAR, а потім натисніть кнопку Next
  4. Поставте прапорець "Зберегти опис цього JAR у робочій області" та виберіть ім'я нового .jardescфайлу

Тепер все, що вам потрібно зробити, це натиснути правою кнопкою миші на ваш .jardescфайл і вибрати, Create JARі він експортує його в те саме місце.


Сумно, що ця відповідь не отримала більше відгуків (або найкращої відповіді) місяці тому. Ну добре, Конрада вже немає.
Дан Розенстарк

25
У Eclipse Galileo я повинен був замінити ваш крок 1 на файл -> експорт -> Java -> файл JAR.
Метт Хаггінс

9
Чи є спосіб автоматизувати крок «правою кнопкою миші -> Створити JAR»?
Асаф

4
Чи є спосіб автоматизувати крок "правою кнопкою миші -> Створити JAR" або прив'язати його до комбінації клавіш?
Pacerier

5
Я використовую "Експорт ... -> Java -> Запуск файлу JAR", щоб створити саме це.
TedTrippin

70

Створіть файл мурашки та скажіть Eclipse, щоб він створив його. Існує лише два етапи, і кожен простий за допомогою покрокових інструкцій нижче.


Крок 1 Створіть файл build.xml та додайте його в Explorer Explorer:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="." includes="*.class" />
  </target>
</project>

Eclipse повинен виглядати приблизно як на скріншоті нижче. Зверніть увагу на значок мурашки на build.xml. Build.xml в Eclipse Project

Крок 2 Клацніть правою кнопкою миші на кореневому вузлі в проекті. - Виберіть Властивості - Виберіть Конструктори - Виберіть Нове - Виберіть Ant Build - На вкладці Main заповніть шлях до файла build.xml у папці bin .

Конфігурація мурашника Крок побудови - вкладка Цілі

Перевірте вихід

У вікні виводу Eclipse (з назвою Console) після збірки повинно бути вказано наступне:

Buildfile: /home/<user>/src/Test/build.xml

CreateJar:
         [jar] Building jar: /home/<user>/src/Test/Test.jar
BUILD SUCCESSFUL
Total time: 152 milliseconds

EDIT: Кілька корисних коментарів @yeoman та @betlista

@yeoman Я думаю, що правильним включатиметься /.class, а не * .class, оскільки більшість людей використовують пакети і, таким чином, рекурсивний пошук файлів класу має більше сенсу, ніж просто включення

@betlista Я б рекомендував не мати build.xml у папці src


2
Так, ви можете вибрати цілі для етапу збирання наступним чином: Після чистого, ручного збирання, автоматичного збирання та під час очищення. Auto Build має дати вам те, що ви хочете :)
Thomas Bratt

8
Спробувавши обидва, це рішення здається набагато кращим, ніж рішення Конрада. Це вимагає, щоб ви вручну розібрали деякі шляхи у вашому файлі збірки, але це дозволяє автоматично збирати (замість 2 клацань) та дозволяє легко налаштувати (скопіюйте банку, наприклад, після збирання). Ось як створити jar файл, коли файл збирання знаходиться в корені та має кілька вкладених рівнів пакетів:<jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
worldsayshi

3
+1 Як це не є прийнятою відповіддю і навіть не найбільш голосовою?
Хуан Гарсія

2
Велике спасибі. Я б рекомендував не мати build.xmlпапки src, але все інше працює чудово, дивовижно!
Betlista

1
Я думаю, що правильним включатиметься / .class, а не * .class, оскільки більшість людей використовують пакети, і таким чином рекурсивний пошук файлів класу має більше сенсу, ніж просто включення. Буде видалено мій +1 до тих пір, оскільки відповідь зазвичай не працює так, як є.
yeoman

13

Це можливо, визначивши спеціальний Builder у затемненні (див. Посилання у відповіді Петра). Однак, якщо ваш проект дуже маленький, він може уповільнити вашу робочу область неприйнятно. Автобудування для файлів класів відбувається поступово, тобто перекомпілюються лише ті класи, на які впливає зміна, але файл JAR доведеться перебудовувати та копіювати повністю, кожен раз, коли ви зберігаєте зміну.


5

Що стосується відповіді Петра та доповнення Мішеля до нього, ви можете виявити корисним, як я автоматично створюю .jar файл у проекті Java Eclipse . Тому що навіть у вас є файл "* .jardesc" у вашому проекті, ви повинні запустити його вручну. Це може трохи охолодити ваші "клопоти від затемнення".


1

Використовуючи відповідь Томаса Братта вище, просто переконайтеся, що ваш build.xml налаштований належним чином:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="bin/" includes="**/*.class" />
  </target>
</project>

(Зверніть увагу на подвійну зірочку - вона дозволить побудувати шукати .class файли у всіх підкаталогах.)


0

Створення інструмента для запуску програми - це проблема, оскільки 2 проекти не можуть мати однакову назву збірки зовнішніх інструментів. Кожне ім’я має бути унікальним. В даний час я стикаюся з цим питанням, щоб автоматизувати мої збірки та копіювання JAR у зовнішнє місце.

Я використовую Zip Builder IBM, але це лише допомога, але не реальна.

Люди можуть спробувати використовувати плагін IBM ZIP Creation. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download

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