Как создать jar файл в eclipse
Войти
Авторизуясь в 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
- Конфигурация запуска (Launch configuration или Run configuration), которая отвечает за запуск проекта. Из неё во время сборки будет взята информация о Main class, CLASSPATH и всех необходимых библиотеках
- Имя создаваемого JAR-файла
- Далее надо указать, как следует поступить с подключенными библиотеками:
- Распаковать содержимое библиотек и запаковать и вместе с вашими классами и ресурсами в один JAR
- Не распаковывая положить все библиотеки в создаваемый JAR. В дополнение к этому Eclipse положит в build-катлог файл jar-in-jar-loader.zip, который содержит классы, позволяющие использовать эти "дважды упакованные" библиотеки вашему приложению (Classloader). Эти классы будут также упакованы в ваш JAR и, следовательно, для его выполнения после окончательной сборки архив jar-in-jar-loader.zip не нужен. Однако, для того чтобы можно было автоматизировать такую сборку, этот архив обязательно должен быть в build-каталоге, поэтому после первой "кнопочно-окошечной" сборки его удалять не стоит
- Положить все необходимые библиотеки в каталог рядом с созданным JAR'ом
- Можно указать где сохранить сгенерированный 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 только, когда вам это действительно нужно.
Ресурсы
Кроме скомпилированных классов, в JAR также можно хранить и другие ресурсы приложения, например, текстовые файлы или картинки. Для этого нужно поместить ресурсы в пакет (или субпакет) с каким-нибудь классом и использовать методы Class.getResource(String name) или Class.getResourceAsStream(String name) для доступа к ресурсу. Параметр name это имя файла ресурса относительно каталога (пакета), в котором лежит класс.Пример
У вас есть класс MyApp.class, который находится в пакете my.application. Вы можете поместить файлы изображений например в my.application.images и обращаться к ним из класса MyApp примерно так:
Или из любого другого класса:
При использовании такого подхода, можно получать доступ как к незапакованным файлам ресурсов, так и к тем, которые запакованы в JAR вместе с классами.
Правой кнопкой по корневой папке проекта -> Export:
выбираем JAR file, жмём Next.
В форме JAR Export в поле JAR file перейдите в папку Hilfe нашего проекта и укажите имя jar файла SBPJar, снимите флаги напротив Hilfe и sbp-program.txt:
Жмём Next, в следующем окне снова жмём Next, отрывается окно JAR Manifest Specification, в нем кликаем радиокнопку “Use existing manifest from workspace” и соответствующем поле “Manifest file” выбираем наш файл sbp-program.txt:
Жмём Finish. Наш SBPJar файл готов:
Два раза кликнете по SBPJar.jar, запустится наша программа. Всё, что на картинке находится выше папки Hilfe – это наш проект JarInJar, а папка Hilfe и её содержимое – это дистрибутив нашего проекта. Папку Hilfe можно переместить/скопировать в любое место на диске, SBPJar.jar запуститься и оттуда.
Всё хорошо получилось, вот только дистрибутивы часто распространяют в виде единого архивного файла. Как сделать такой дистрибутив?
Делаем дистрибутив
Можно упаковать папку Hilfe с помощью любого архиватора и получить искомый дистрибутив. Можно воспользоваться JAR архиватором Eclipse, который мы уже неплохо освоили.
Правой кнопкой по корневой папке проекта -> Export:
выбираем JAR file, жмём Next. В форме JAR Export в поле JAR file перейдите в корневую папку нашего проекта и укажите имя jar файла SBPDistributive. В полях “Select the resources to export” снимите все флаги кроме Hilfe, как на картинке:
Жмём Next, в следующем окне снова жмём Next, отрывается окно JAR Manifest Specification, в нём жмём радиокнопку Generate the manifest file:
Жмём 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. Он также имеет два других способа (см. скриншот) для экспорта библиотек, помните о лицензиях при решении, какой метод упаковки вы будете использовать.
раскрывающийся список "конфигурация запуска" заполняется классами, содержащими 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,
его создать банку, которая включает в себя все зависимости от Pom.xml, но убедитесь, что проблема с лицензией, если вы используете стороннюю зависимость для своего приложения.
при экспорте источника в банку убедитесь, что вы выбрали опцию runnable jar из опций. Затем выберите, хотите ли вы упаковать все банки зависимостей или просто включить их непосредственно в файл jar. Это зависит от проекта, над которым вы работаете.
затем вы запускаете jar непосредственно примером java-jar.сосуд.
Если это автономный (основной метод) java - проект, то не какой - либо конкретный путь поместите все банки внутри проекта, а не какой-либо конкретный путь, затем щелкните правой кнопкой мыши на проекте - > Экспорт - > Runnable jar - > выберите конфигурацию обеда и библиотеку handeling затем выберите переключатель "упаковать необходимые библиотеки в сгенерированную банку" - > готово.
Если у вас есть веб-проект, поместите все банки в папку web-inf/lib и выполните тот же шаг.
Читайте также: