Как сделать jar файл
Как создать исполняемый JAR с помощью Maven
Введение
В этой статье мы рассмотрим упаковку Maven- проекта в файл Jar . Выясним преимущества и недостатки каждого из подходов, применяемых для создания исполняемого файла.
Конфигурация
Чтобы создать исполняемый файл jar , не требуются дополнительные зависимости. Нам нужно просто создать Java-проект Maven с одним классом и методом main(…) .
В приведенном ниже примере мы создаем Java-класс ExecutableMavenJar. Для этого в файл pom.xml нужно добавить следующие элементы:
Удостоверьтесь в том, что в конфигурации задан тип jar . Теперь можно приступить к реализации каждого из подходов.
Ручная настройка
Для этого мы используем плагин maven-dependency-plugin . Сначала скопируем все необходимые зависимости в указанную папку:
Сначала мы задаем цель copy-dependencies , что указывает Maven скопировать эти зависимости в заданный outputDirectory .
В данном случае мы создадим папку с именем libs внутри каталога сборки проекта (обычно это папка target ).
Затем мы создаем исполняемый файл jar с указанными путями к классам и со ссылкой на зависимости, скопированные на первом шаге:
Наиболее важной частью приведенного выше кода является конфигурация manifest . В ней мы добавляем classpath со всеми зависимостями (папка libs/ ), а также предоставляем информацию о главном классе.
Преимущества и недостатки этого подхода:
- Преимущества — прозрачный процесс, в рамках которого можно прописать каждый шаг.
- Недостатки — зависимости находятся вне финального файла jar . Поэтому он будет работать только, если папка libs будет доступна и видима для jar-файла.
Apache Maven Assembly Plugin
Плагин Apache Maven Assembly позволяет объединять выходные данные проекта вместе с зависимостями, модулями, документацией и другими файлами в единый пакет.
Основной целью в плагине сборки является single . Она используется для создания любых сборок. Остальные цели устарели и будут удалены в следующей версии плагина.
Рассмотрим конфигурацию, заданную в файле pom.xml :
Как и при ручной настройке, сначала нужно предоставить информацию о главном классе. Но плагин автоматически скопирует все необходимые зависимости в файл JAR .
В descriptorRefs мы указали имя, которое будет добавлено к имени проекта. В нашем случае – это core-java-jar-with-dependencies.jar.
- Преимущества – зависимости хранятся внутри jar -файла.
- Недостатки — упрощенный контроль упаковки артефакта. Например, нет поддержки перемещения классов.
Apache Maven Shade Plugin
Плагин позволяет упаковывать артефакт в uber-jar , который включает в себя все зависимости, необходимые для запуска проекта. Кроме того, он поддерживает переименование пакетов некоторых зависимостей.
Рассмотрим приведенную ниже конфигурацию:
В этой конфигурации отмечает все зависимости, которые должны быть упакованы в файл jar .
Затем нам нужно указать реализацию трансформатора . В текущем примере мы использовали стандартную версию. В конце задаем основной класс приложения.
Выходной файл получит название core-java-0.1.0-SNAPSHOT-shaded.jar , где core-java — это имя проекта. За ним следуют версия и имя плагина.
- Преимущества — зависимости внутри jar- файла, расширенный контроль упаковки артефакта.
- Недостатки — сложная конфигурация (особенно если необходимо использовать расширенные функции).
One Jar Maven Plugin
Плагин предоставляет собственный загрузчик, который знает, как загружать классы и ресурсы из jar-файлов архива.
Рассмотрим приведенную ниже конфигурацию:
Сначала необходимо указать основной класс и прикрепить все зависимости сборки, используя для этого attachToBuild = true .
Также необходимо задать имя файла для вывода. Цель Maven — это one-jar .
В One Jar зависимости jar не будут расширены в файловую систему во время выполнения.
- Преимущества — позволяет классам располагаться на верхнем уровне One Jar. Плагин поддерживает внешние jar и собственные библиотеки.
- Недостатки – не обновляется с 2012 года.
Плагин Spring Boot Maven
Плагин позволяет упаковывать исполняемые архивы jar или war и запустить приложение «на месте». Он поддерживает Maven версии 3.2 или выше. Более подробное описание плагина доступно здесь .
Рассмотрим приведенную ниже конфигурацию:
Между Spring и другими плагинами есть два существенных отличия: цель выполнения называется repackage , а классификатор — spring-boot . Обратите внимание, что плагин можно использовать без Spring Boot.
- Достоинства – зависимости располагаются внутри jar- файла, его можно запускать в любом доступном месте, улучшенный контроль упаковки артефакта, исключение зависимостей из jar- файла и упаковка war файлов.
- Недостатки — добавляет ненужные классы, связанные с Spring и Spring Boot.
Веб-приложение с исполняемым Tomcat
В последней части статьи мы рассмотрим упаковку автономного веб-приложения в jar -файл. Но для этого понадобится другой плагин.
Чтобы создать jar-файл, запустите man package, который создаст webapp.jar в каталоге target.
Чтобы запустить приложение, просто введите в консоли: java -jar target / webapp.jar и проверьте результат по адресу: localhost:8080/.
- Преимущества — наличие одного файла, простота развертывания и запуска.
- Недостатки — размер файла намного больше.
Обратите внимание на то, что это последняя версия данного плагина, поддерживающая сервер Tomcat7. Чтобы избежать ошибок, обязательно убедитесь в том, что для зависимости Servlets scope задано значение provided. Иначе во время выполнения jar-файла возникнет конфликт:
Заключение
В этой статье мы рассмотрели несколько способов создания исполняемого jar-файла с помощью различных плагинов Maven. Полную реализацию этого руководства вы сможете найти в проектах, опубликованных на Github:
Как проверить? Чтобы скомпилировать проект в исполняемый файл jar , запустите Maven с помощью команды mvn clean package .
Надеемся, что данная статья помогла разобраться в этой теме.
Данная публикация представляет собой перевод статьи « How to Create an Executable JAR with Maven » , подготовленной дружной командой проекта Интернет-технологии.ру
Вопрос по jar, java – Как создать JAR-файл со структурой пакета?
У меня есть структура папок
Когда я запускаю следующую команду «jar cvf asd.jar * .class», она дает jar со всеми файлами классов. Но структура папок не генерируется. Все файлы классов должны быть в «com.cdy / ws», но все классы находятся на одном уровне META-INF. Может кто-нибудь сказать мне, что команда для создания структуры пакета?
Вы можете выполнить следующую команду, чтобы создать «Example.jar.
jar -cvfm Example.jar manifest.txt com / test / awt / *. class
перейти к структуре папок из командной строки “cd C: test classes”
C: test classes> jar -cvfm Example.jar manifest.txt com / test / awt / *. Class
Это предполагает, что path/to/classes содержит com каталог.
К вашему сведению, в наши дни большинство людей редко пользуются jar команда, так как они будут использовать инструмент сборки, такой какМуравей или жеспециалист позаботиться об этом (и другие аспекты сборки). Стоит приложить усилия, чтобы один из этих инструментов позаботился обо всех аспектах вашей сборки, а с хорошей IDE еще проще написать build.xml (Муравей) или pom.xml (Maven).
Указанная папка должна быть включена C:Program FilesJavajdk1.7.0_02bin путь Foldername, имеющий файлы классов.
Теперь program1.jar создаст в C: Program Files Java jdk1.7.0_02 bin путь
что я делаю внутри .sh файла, давайте рассмотрим install.sh
Создание исполняемого файла Jar в каталоге Class и создание SymLink в любом месте.
Храните содержимое упаковки Java внутри каталога и убедитесь, что внутри ничего нет, кроме ваших пакетов Java и соответствующих им классов Java.
Откройте командную строку (если Windows), перейдите к пути к каталогу, как показано ниже –
C:>cd “C: Users UserABC Downloads Текущая папка”
C: Users UserABC Downloads Текущая папка> jar cvf hello-world-1.0.1.jar .
этот код дал мне правильный ответ
он добавил (log4j) файл свойств, он добавил файлы jar в lib. и затем он пошел внутрь bin, чтобы получить файлы класса с пакетом.
Перейдите в каталог, где хранятся классы, используя командную строку (или приглашение оболочки Linux)
Как для проекта.
C:/workspace/MyProj/bin/classess/com/test/*.class
Перейдите в каталог bin с помощью команды:
Шаг 2: Используйте приведенную ниже команду для создания файла JAR.
Используя вышеупомянутую команду, классы будут помещены в банку в структуре каталогов.
Чтобы не добавлять исходные файлы .java к вашему пакету вы должны сделать
Предполагается, что структура вашего проекта была похожа
указать каталог (например, . ) чтобы jar из. Это сохранит структуру вашей папки в файле jar.
Создание JAR-файла на Java из командной строки или IDE
Файл архива Java является инструментом архивирования, который содержит все компоненты исполняемого приложения Java. Все предопределенные библиотеки доступны в этом формате.
Чтобы включить любой из них (кроме rt.jar) в свой проект, вы должны задать путь класса для данного конкретного файла архива. Вы можете создать файл JAR в Java, используя параметры командной строки или с помощью любого IDE.
Создание Jar
Вы можете создать Jar с помощью команды, как показано ниже.
Рассмотрим пример, как создать программу Java с именем Sample.java —
Sample.java
Если скомпилировать эту программу с помощью команды JAVAC, как показано ниже —
Эта команда компилирует данный файл Java и генерирует файл .class (байт-код)
Теперь создайте файл для созданного класса, как —
Это создаст файл для всех классов в текущем каталоге (так как мы использовали * вместо имени) с указанным именем.
Создание при помощи IDE
Вы также можете создавать архивы JAR, используя IDE. Чтобы создать файл с помощью eclipse, следуйте процедуре, приведенной ниже.
- Откройте мастер файлов Jar. Мастер Jar File можно использовать для экспорта содержимого проекта в файл JAR. Чтобы вызвать мастер Jar File —
- В Package Explorer выберите элементы, которые вы хотите экспортировать. Если вы хотите экспортировать все классы и ресурсы в проекте, просто выберите проект.
- Нажмите на меню Файл и выберите Экспорт.
- В текстовом поле фильтра первой страницы мастера экспорта введите JAR.
- Под категорией Java выберите файл JAR.
- Нажмите на Далее.
- Использование мастера Jar File. На странице спецификации файла JAR —
- Введите имя файла JAR и папку.
- По умолчанию экспортируются только классы. Чтобы также экспортировать исходный код, установите флажок «Экспорт исходных файлов и ресурсов Java».
- Нажмите Далее, чтобы изменить параметры упаковки JAR.
- Нажмите Next, чтобы изменить спецификацию JAR Manifest
- Нажмите на Готово.
Средняя оценка / 5. Количество голосов:
Спасибо, помогите другим – напишите комментарий, добавьте информации к статье.
Или поделись статьей
Видим, что вы не нашли ответ на свой вопрос.
Источники:
http://www.internet-technologies.ru/articles/kak-sozdat-ispolnyaemyy-jar-s-pomoschyu-maven.html
http://vike.io/ru/236816/
http://hr-vector.com/java/sozdanie-jar-fajla-na-java-iz-komandnoj-stroki-ili-ide