Как создать jar файл в eclipse

Обновлено: 30.06.2024

Войти

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

Философия, стратегия, размышления, заметки (раньше про Excel/VBA, Python и пр.)

Исполняемый JAR файл из Eclipse

JAR (Java ARchive) - это Java-архив, который позволяет хранить в одном архивном файле все ресурсы Java-проекта. JAR-файлы делятся на две категории:
1) простые JAR-файлы
2) исполняемые JAR-файлы
У последних есть одна приятная особенность - в WinXP их можно запустить двойным щелчком мыши по значку.

В Eclipse существует специальная функция экспорта, которая позволяет быстро и без особого труда создавать исполняемые JAR-файлы. Допустим, мы создали некий тестовый проект. Вот как он выглядит в Eclipse:

Вот текст класса "Hello":


public class Hello Hello( String msg)

// Create a new JFrame container.
JFrame jfrm = new JFrame( "A Simple Swing Application" );

// Give the frame an initial size.
jfrm.setSize(275, 100);

// Terminate the program when the user closes the application.
jfrm.setDefaultCloseOperation(JF rame.EXIT_ON_CLOSE);

// Create a text-based label.
JLabel jlab = new JLabel(msg);

// Add the label to the content pane.
jfrm.add(jlab);

// Display the frame.
jfrm.setVisible( true );
>

public static void main( String args[])

SwingUtilities.invokeLater( new Runnable() <
public void run() <
new Hello( "Hello, world!" );
>
>);
>
>

Смысл в том, чтобы программа создала swing-frame и вывела туда волшебные слова "Hello, world!"

Дальше в разделе File выбираем строку Export. и в появившемся окошке выбираем опцию Runnable JAR file:

Следующим шагом необходимо определить спецификацию JAR-файла:

Вот тут мне пришлось немного повозиться с Launch configuration. Эта строка будет у вас пустой, пока вы не наведете мышку на свой Java-проект (у меня это проект mytests) и не откроете правой клавишей мыши контекстное меню, где вам надо будет выбрать Debug As -> Dubug Configuration:

Когда разрабатывается относительно небольшое десктопное приложение на Java, частенько возникает вполне, на мой взгляд, естественное желание запихать все классы, библиотеки и ресурсы в один исполняемый JAR-файл. В некоторых случаях именно такое решение является предпочтительным.

В Eclipse IDE это можно сделать очень легко и, кроме того, автоматизировать это действие, чтобы в дальнейшем делать сборку JAR одной кнопкой.

Сборка

Кликаем правой кнопкой по проекту, который надо упаковать в исполняемый JAR и нажимаем Export.

В окне выбираем Java -> Runnable JAR и жмём Next

  1. Конфигурация запуска (Launch configuration или Run configuration), которая отвечает за запуск проекта. Из неё во время сборки будет взята информация о Main class, CLASSPATH и всех необходимых библиотеках
  2. Имя создаваемого JAR-файла
  3. Далее надо указать, как следует поступить с подключенными библиотеками:
    • Распаковать содержимое библиотек и запаковать и вместе с вашими классами и ресурсами в один JAR
    • Не распаковывая положить все библиотеки в создаваемый JAR. В дополнение к этому Eclipse положит в build-катлог файл jar-in-jar-loader.zip, который содержит классы, позволяющие использовать эти "дважды упакованные" библиотеки вашему приложению (Classloader). Эти классы будут также упакованы в ваш JAR и, следовательно, для его выполнения после окончательной сборки архив jar-in-jar-loader.zip не нужен. Однако, для того чтобы можно было автоматизировать такую сборку, этот архив обязательно должен быть в build-каталоге, поэтому после первой "кнопочно-окошечной" сборки его удалять не стоит
    • Положить все необходимые библиотеки в каталог рядом с созданным JAR'ом
  4. Можно указать где сохранить сгенерированный Ant-скрипт для этой сборки. В дальнейшем его можно будет использовать для автоматизации процесса создания исполняемого JAR-файла из проекта


При создании JAR, автоматом также будет создан файл MANIFEST.MF с правильными Class-Path и Main-Class, поэтому ваш архив можно будет запустить простой командой java -jar application.jar.

Если вы решите упаковывать все библиотеки в один JAR вместе с вашими классами, убедитесь, что лицензии библиотек это разрешают.

Автоматизация сборки

Как было сказано ранее, при создании JAR с помощью Eclipse, вы можете сохранить сгенерированный скрипт Ant, содержащий все необходимые действия.

В свойствах проекта (Project -> Properties) есть раздел Builders, в котором вы можете создавать дополнительные билдеры и в частности таким билдером может быть Ant, которому вы и подсовываете этот файл. После этого при каждом запуске проекта (Ctrl + F11), JAR будет собираться автоматически, если были изменения в исходном коде.


Такой вариант постоянной сборки JAR не особо удобен, т.к. может занимать некомфортное по продолжительности время. Вместо этого можно создать этот билдер в External Tools (Run -> External Tools -> External Tools Configurations) и запускать сборку JAR только, когда вам это действительно нужно.


Ну и, конечно же, никто не запрещает вам добавлять свои собственные цели и задачи в этот Ant-скрипт. Подробнее об Ant'е я писал тут.

Ресурсы

Кроме скомпилированных классов, в JAR также можно хранить и другие ресурсы приложения, например, текстовые файлы или картинки. Для этого нужно поместить ресурсы в пакет (или субпакет) с каким-нибудь классом и использовать методы Class.getResource(String name) или Class.getResourceAsStream(String name) для доступа к ресурсу. Параметр name это имя файла ресурса относительно каталога (пакета), в котором лежит класс.

Пример

У вас есть класс MyApp.class, который находится в пакете my.application. Вы можете поместить файлы изображений например в my.application.images и обращаться к ним из класса MyApp примерно так:
Или из любого другого класса:

При использовании такого подхода, можно получать доступ как к незапакованным файлам ресурсов, так и к тем, которые запакованы в JAR вместе с классами.

сделать jar в Eclipse

Правой кнопкой по корневой папке проекта -> Export:

выбираем JAR file, жмём Next.

сделать jar в Eclipse

В форме JAR Export в поле JAR file перейдите в папку Hilfe нашего проекта и укажите имя jar файла SBPJar, снимите флаги напротив Hilfe и sbp-program.txt:

сделать jar в Eclipse

Жмём Next, в следующем окне снова жмём Next, отрывается окно JAR Manifest Specification, в нем кликаем радиокнопку “Use existing manifest from workspace” и соответствующем поле “Manifest file” выбираем наш файл sbp-program.txt:

сделать jar в Eclipse

Жмём Finish. Наш SBPJar файл готов:

Два раза кликнете по SBPJar.jar, запустится наша программа. Всё, что на картинке находится выше папки Hilfe – это наш проект JarInJar, а папка Hilfe и её содержимое – это дистрибутив нашего проекта. Папку Hilfe можно переместить/скопировать в любое место на диске, SBPJar.jar запуститься и оттуда.

Всё хорошо получилось, вот только дистрибутивы часто распространяют в виде единого архивного файла. Как сделать такой дистрибутив?

Делаем дистрибутив

Можно упаковать папку Hilfe с помощью любого архиватора и получить искомый дистрибутив. Можно воспользоваться JAR архиватором Eclipse, который мы уже неплохо освоили.

сделать jar в Eclipse

Правой кнопкой по корневой папке проекта -> Export:

сделать jar в Eclipse

выбираем JAR file, жмём Next. В форме JAR Export в поле JAR file перейдите в корневую папку нашего проекта и укажите имя jar файла SBPDistributive. В полях “Select the resources to export” снимите все флаги кроме Hilfe, как на картинке:

сделать jar в Eclipse

Жмём Next, в следующем окне снова жмём Next, отрывается окно JAR Manifest Specification, в нём жмём радиокнопку Generate the manifest file:

сделать jar в Eclipse

Жмём Finish, получаем:

У меня есть имя папки, называемое configurator, которое имеет много подпапок и файлов классов. Мне нужно создать файл configurator.jar этой папки, используя eclipse. Я выполнил следующие шаги, чтобы создать файл jar.

Но после сохранения файла jar я не могу видеть файлы классов внутри jar.

Мой вопрос: Почему файлы классов не экспортируются в банку? Как это сделать, используя eclipse?

Создание JAR файла с использованием Eclipse IDE:

Щелкните правой кнопкой мыши на своем проекте, который вы хотите создать JAR файл. Выберите Экспорт из контекстного меню.

Выберите JAR файл из папки Java и нажмите "Далее".

В eclipse Добавлена ​​последняя версия Загружаемый JAR файл.

Укажите путь назначения и нажмите "Готово", чтобы создать JAR.

Выберите конкретный проект, справа click-> Экспорт

Под Java выберите файл JAR, нажмите Next

(Не изменяйте никакие свойства) выберите расположение файла Jar, в котором вы хотите сохранить, и нажмите "Далее"

Он покажет параметры пакета JAR. Не вносите никаких изменений, нажмите Далее

Наконец, выберите местоположение основного класса. Выберите свой конкретный класс и затем закончите

Теперь ваша банка будет создана в данном месте

Файлы JAR могут быть созданы с использованием следующего метода, который я сказал

step1: Создайте один проект и назовите его как Project1

step2: Создайте еще один проект и назовите его как Project2

step3: Создание пакетов для двух проектов

step4: Создание классов для проектов

step5: Щелкните правой кнопкой мыши по Project1, перейдите к экспорту, в котором выберите Java, чтобы перейти к файлам jar выберите Project1, затем нажмите ok и ok.

step6: Щелкните правой кнопкой мыши Project2, создайте одну папку, в которой вы скопируете файл jar, который мы создали для проекта1.

step7: Щелкните правой кнопкой мыши по проекту2, перейдите к свойствам, выберите buildpath, затем щелкните по библиотекам, затем нажмите кнопку ok, затем ok.

Я закончил с проектом, который подключается к базе данных (MySQL). Теперь я хочу экспортировать проект как jar. Но я не знаю, как включить его внешние зависимости? Есть ли способ сделать это в Eclipse, или я должен использовать какие-нибудь скрипты для этого?.

когда вы экспортируете свой проект как "Runnable jar" (правая мышь на project -> Export -> Runnable jar), у вас есть возможность упаковать все зависимости в сгенерированный jar. Он также имеет два других способа (см. скриншот) для экспорта библиотек, помните о лицензиях при решении, какой метод упаковки вы будете использовать.

Package libraries

раскрывающийся список "конфигурация запуска" заполняется классами, содержащими main(String[]) метод. Выбранный класс запускается, когда ты "управляешь" банкой.

экспорт в виде runnable jar использует зависимости от вашего пути сборки (правая мышь на project -> Build Path -> Configure Build Path. ). Когда вы экспортируете как "обычный" (не запускаемый) jar, вы можете выбрать любой файл в своем проекте(проектах). Если у вас есть библиотеки в папке проекта, вы можете включить их, но внешние зависимости, например maven, не может быть включен (для проектов maven,поиск).

вы можете использовать Export - >Java - >Runnable Jar для создания jar, который включает в себя его зависимости

кроме того, вы можете использовать fatjar Eclipse-плагин, а также Бульонница вместе

вы можете щелкнуть правой кнопкой мыши по проекту, нажмите на экспорт, введите "jar", выберите "Runnable Jar File Export". Там у вас есть опция "извлечь необходимые библиотеки в сгенерированную банку".

Если вы хотите экспортировать все JAR-файлы веб-проекта Java, откройте последний сгенерированный WAR-файл с помощью ZIP-инструмента (например, 7-Zip), перейдите в папку /WEB-INF/lib/. Здесь вы найдете все JAR-файлы, необходимые для этого проекта (как указано в разделе "библиотеки ссылок").

для создания файла jar в eclipse щелкните правой кнопкой мыши проект, для которого вы хотите создать, выберите Экспорт>Java>Runnable Jar File,

enter image description here

enter image description here

его создать банку, которая включает в себя все зависимости от Pom.xml, но убедитесь, что проблема с лицензией, если вы используете стороннюю зависимость для своего приложения.

при экспорте источника в банку убедитесь, что вы выбрали опцию runnable jar из опций. Затем выберите, хотите ли вы упаковать все банки зависимостей или просто включить их непосредственно в файл jar. Это зависит от проекта, над которым вы работаете.

затем вы запускаете jar непосредственно примером java-jar.сосуд.

Если это автономный (основной метод) java - проект, то не какой - либо конкретный путь поместите все банки внутри проекта, а не какой-либо конкретный путь, затем щелкните правой кнопкой мыши на проекте - > Экспорт - > Runnable jar - > выберите конфигурацию обеда и библиотеку handeling затем выберите переключатель "упаковать необходимые библиотеки в сгенерированную банку" - > готово.

Если у вас есть веб-проект, поместите все банки в папку web-inf/lib и выполните тот же шаг.

Читайте также: