Как создать jar файл
Перейти к содержимому

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

  • автор:

Руководство по созданию и запуску файла JAR в Java

Обычно удобно объединять множество файлов классов Java в один архивный файл.

В этом руководстве мы рассмотрим все тонкости работы с файлами jar — или J ava AR chive — в Java.

В частности, мы возьмем простое приложение и рассмотрим различные способы его упаковки и запуска в виде jar-файла. Мы также ответим на некоторые любопытные вопросы, например , как легко прочитать файл манифеста jar .

2. Настройка Java-программы​

Прежде чем мы сможем создать исполняемый jar-файл, наше приложение должно иметь класс с основным методом . Этот класс обеспечивает нашу точку входа в приложение:

 public static void main(String[] args)    System.out.println("Hello ForEach Reader!");   > 

3. Команда банки​

Теперь, когда мы все настроили, давайте скомпилируем наш код и создадим файл jar.

Мы можем сделать это с помощью javac из командной строки:

 javac com/foreach/jar/*.java 

Команда javac создает JarExample.class в каталоге com/foreach/jar . Теперь мы можем упаковать это в файл jar.

3.1. Использование значений по умолчанию​

Чтобы создать файл jar, мы будем использовать команду jar .

Чтобы использовать команду jar для создания файла jar, нам нужно использовать параметр c , чтобы указать, что мы создаем файл, и параметр f , чтобы указать файл:

 jar cf JarExample.jar com/foreach/jar/*.class 

3.2. Установка основного класса​

В манифест файла jar полезно включить основной класс.

Манифест — это специальный файл в банке, расположенный в каталоге META-INF и названный MANIFEST.MF . Файл манифеста содержит специальную метаинформацию о файлах в файле jar.

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

Используя параметр e , мы можем указать нашу точку входа, и команда jar добавит ее в сгенерированный файл манифеста.

Запустим jar с указанной точкой входа:

 jar cfe JarExample.jar com.foreach.jar.JarExample com/foreach/jar/*.class 

3.3. Обновление содержимого​

Допустим, мы внесли изменения в один из наших классов и перекомпилировали его. Теперь нам нужно обновить наш jar-файл.

Давайте используем команду jar с параметром u для обновления его содержимого:

 jar uf JarExample.jar com/foreach/jar/JarExample.class 

3.4. Настройка файла манифеста​

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

Давайте добавим в наше приложение частичный файл манифеста с именем example_manifest.txt , чтобы задать точку входа:

Main-Class: com.foreach.jar.JarExample 

Информация манифеста, которую мы предоставляем, будет добавлена к тому, что генерирует команда jar, поэтому это единственная строка, которая нам нужна в файле.

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

С этой настройкой давайте снова создадим нашу банку, используя информацию из манифеста и параметр m :

 jar cfm JarExample.jar com/foreach/jar/example_manifest.txt com/foreach/jar/*.class 

3.5. Подробный вывод​

Если нам нужна дополнительная информация из команды jar , мы можем просто добавить параметр v для подробного описания.

Давайте запустим нашу команду jar с параметром v :

 jar cvfm JarExample.jar com/foreach/jar/example_manifest.txt com/foreach/jar/*.class added manifest adding: com/foreach/jar/JarExample.class(in = 453) (out= 312)(deflated 31%) 

4. Использование Maven​

4.1. Конфигурация по умолчанию​

Мы также можем использовать Maven для создания нашей банки. Поскольку Maven отдает предпочтение соглашению, а не конфигурации, мы можем просто запустить пакет, чтобы создать наш файл jar.

 mvn package 

По умолчанию наш файл jar будет добавлен в целевую папку нашего проекта.

4.2. Указание основного класса​

Мы также можем настроить Maven для указания основного класса и создания исполняемого файла jar .

 plugin>   groupId>org.apache.maven.pluginsgroupId>   artifactId>maven-jar-pluginartifactId>   version>$ version>   configuration>   archive>   manifest>   mainClass>com.foreach.jar.JarExamplemainClass>   manifest>   archive>   configuration>   plugin> 

5. Использование Spring Boot​

5.1. Использование Maven и значений по умолчанию​

Если мы используем Spring Boot с Maven, мы должны сначала подтвердить, что для нашего параметра упаковки установлено значение jar , а не war в нашем файле pom.xml .

 modelVersion>4.0.0modelVersion>   artifactId>spring-bootartifactId>   packaging>jarpackaging>   name>spring-bootname> 

Как только мы узнаем, что это настроено, мы можем запустить цель пакета :

 mvn package 

5.2. Настройка точки входа​

Настройка нашего основного класса — это то место, где мы находим различия между созданием jar с обычным приложением Java и толстым jar для приложения Spring Boot . В приложении Spring Boot основным классом на самом деле является org.springframework.boot.loader.JarLauncher .

Хотя наш пример не является приложением Spring Boot, мы могли бы легко настроить его как консольное приложение Spring Boot .

Наш основной класс должен быть указан как начальный класс:

 properties>   start-class>com.foreach.jar.JarExamplestart-class>     properties> 

6. Запуск банки​

Теперь, когда у нас есть файл jar, мы можем запустить его. Мы запускаем файлы jar с помощью команды java .

6.1. Вывод основного класса​

Поскольку мы пошли дальше и убедились, что наш основной класс указан в манифесте, мы можем использовать параметр -jar команды java для запуска нашего приложения без указания основного класса:

 java -jar JarExample.jar 

6.2. Указание основного класса​

Мы также можем указать основной класс при запуске нашего приложения. Мы можем использовать параметр -cp , чтобы убедиться, что наш файл jar находится в пути к классам, а затем предоставить наш основной класс в формате package.className :

 java -cp JarExample.jar com.foreach.jar.JarExample 

Использование разделителей пути вместо формата пакета также работает:

 java -cp JarExample.jar com/foreach/jar/JarExample 

6.3. Список содержимого банки​

Мы можем использовать команду jar для вывода списка содержимого нашего файла jar:

 jar tf JarExample.jar META-INF/ META-INF/MANIFEST.MF com/foreach/jar/JarExample.class 

6.4. Просмотр файла манифеста​

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

Давайте воспользуемся командой unzip с параметром -p:

 unzip -p JarExample.jar META-INF/MANIFEST.MF Manifest-Version: 1.0  Created-By: 1.8.0_31 (Oracle Corporation)  Main-Class: com.foreach.jar.JarExample 

7. Заключение​

В этом руководстве мы создадим простое Java-приложение с основным классом.

Затем мы рассмотрели три способа создания jar-файлов: с помощью команды jar , с помощью Maven и с помощью приложения Maven Spring Boot.

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

Мы также узнали, как отображать содержимое файла и как отображать содержимое одного файла в банке.

И простой пример Java , и пример Spring Boot доступны на GitHub.

  • 1. Обзор
  • 2. Настройка Java-программы
  • 3. Команда банки
    • 3.1. Использование значений по умолчанию
    • 3.2. Установка основного класса
    • 3.3. Обновление содержимого
    • 3.4. Настройка файла манифеста
    • 3.5. Подробный вывод
    • 4.1. Конфигурация по умолчанию
    • 4.2. Указание основного класса
    • 5.1. Использование Maven и значений по умолчанию
    • 5.2. Настройка точки входа
    • 6.1. Вывод основного класса
    • 6.2. Указание основного класса
    • 6.3. Список содержимого банки
    • 6.4. Просмотр файла манифеста

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

    Опции c И f могут появиться в любом порядке, но не должно быть никакого пространства между ними.

    Эта команда генерирует сжатый файл JAR и поместит его в текущий каталог. Команда также генерирует файл манифеста значения по умолчанию для архива JAR.

    Отметьте:

    Метаданные в файле JAR, таком как запись называют, комментируют, и содержание декларации, должны быть закодированы в UTF8.

    Можно добавить любую из этих дополнительных опций к опциям cf основной команды:

    опции команды фляги

    Опция Описание
    v Производит многословный вывод на stdout, в то время как файл JAR создается. Многословный вывод говорит Вам имя каждого файла, как это добавляется к файлу JAR.
    0 (нуль) Указывает, что Вы не хотите, чтобы файл JAR был сжат.
    M Указывает, что файл манифеста значения по умолчанию не должен быть произведен.
    m Используемый, чтобы включать явную информацию от существующего файла манифеста. Формат для того, чтобы использовать эту опцию:
    jar cmf existing-manifest jar-file input-file(s)

    См. Изменение Файла манифеста для получения дополнительной информации о его опции.

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

    Отметьте:

    Когда Вы создаете файл JAR, время создания сохранено в файле JAR. Поэтому, даже если содержание файла JAR не изменяется, когда Вы создаете файл JAR многократно, получающиеся файлы не точно идентичны. Следует знать об этом, когда Вы используете файлы JAR в среде сборки. Рекомендуется, чтобы Вы использовали информацию об управлении версиями в файле манифеста, а не время создания, чтобы управлять версиями файла JAR. См. раздел Информации о версии Пакета Установки.

    Пример

    Давайте смотреть на пример. Простой апплет TicTacToe. Можно видеть исходный код этого Апплета в TicTacToe.java . Этот демонстрационный пример содержит байт-код файл class, аудиофайлы, и изображения, имеющие эту структуру:

    Иерархия папок TicTacToe

    audio и подкаталоги images содержат звуковые файлы и изображения ДЖИФА, используемые апплетом.

    Можно получить все эти файлы из каталога фляги/примеров, когда Вы загружаете все Учебное руководство онлайн. Чтобы упаковать этот демонстрационный пример в единственный файл JAR под названием TicTacToe.jar, Вы выполнили бы эту команду изнутри каталога TicTacToe:

    jar cvf TicTacToe.jar TicTacToe.class audio images

    audio и параметры images представляют каталоги, таким образом, инструмент Фляги рекурсивно разместит их и их содержание в файле JAR. Сгенерированный файл JAR TicTacToe.jar будет помещен в текущий каталог. Поскольку команда, используемая опция v для многословного вывода, Вы видели бы что-то подобное этому выводу, когда Вы выполняете команду:

    adding: TicTacToe.class (in=3825) (out=2222) (deflated 41%) adding: audio/ (in=0) (out=0) (stored 0%) adding: audio/beep.au (in=4032) (out=3572) (deflated 11%) adding: audio/ding.au (in=2566) (out=2055) (deflated 19%) adding: audio/return.au (in=6558) (out=4401) (deflated 32%) adding: audio/yahoo1.au (in=7834) (out=6985) (deflated 10%) adding: audio/yahoo2.au (in=7463) (out=4607) (deflated 38%) adding: images/ (in=0) (out=0) (stored 0%) adding: images/cross.gif (in=157) (out=160) (deflated -1%) adding: images/not.gif (in=158) (out=161) (deflated -1%)

    Можно видеть от этого вывода, что файл JAR TicTacToe.jar сжимается. Инструмент Фляги сжимает файлы по умолчанию. Можно выключить функцию сжатия при использовании 0 (нуль) опция, так, чтобы команда была бы похожа:

    jar cvf0 TicTacToe.jar TicTacToe.class audio images

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

    Инструмент Фляги примет параметры, которые используют подстановочный знак символ *. Пока не было никаких нежелательных файлов в каталоге TicTacToe, Вы, возможно, использовали эту альтернативную команду, чтобы создать файл JAR:

    jar cvf TicTacToe.jar *

    Хотя многословный вывод не указывает на это, инструмент Фляги автоматически добавляет файл манифеста к архиву JAR с путем META-INF/MANIFEST.MF. См. Работу с Файлами манифеста: раздел Основ для информации о файлах манифеста.

    В вышеупомянутом примере, файлах в архиве, сохраненном их относительные пути и структура каталогов. Инструмент Фляги предоставляет возможность -C, которую можно использовать, чтобы создать файл JAR, в котором не сохраняются относительные пути заархивированных файлов. Это моделируется после опции -C TAR.

    Как пример, предположите, что Вы хотели поместить аудиофайлы и изображения gif, используемые демонстрационным примером TicTacToe в файл JAR, и что Вы хотели, чтобы все файлы были на верхнем уровне без иерархии каталогов. Вы могли выполнить это, давая эту команду из родительского каталога каталогов images И audio:

    jar cf ImageAudio.jar -C images . -C audio .

    Часть -C images этой команды направляет инструмент Фляги, чтобы пойти в каталог images, и . после -C images направляет инструмент Фляги, чтобы заархивировать все содержание того каталога. Часть -C audio . команды тогда делает то же самое с каталогом audio. У получающегося файла JAR было бы это оглавление:

    META-INF/MANIFEST.MF cross.gif not.gif beep.au ding.au return.au yahoo1.au yahoo2.au

    В отличие от этого, предположите, что Вы использовали команду, которая не использовала опцию -C:

    jar cf ImageAudio.jar images audio

    У получающегося файла JAR было бы это оглавление:

    META-INF/MANIFEST.MF images/cross.gif images/not.gif audio/beep.au audio/ding.au audio/return.au audio/yahoo1.au audio/yahoo2.au

    Ваше использование этой страницы и всего материала на страницах под «Учебным баннером» Java подвергается этим официальным уведомлениям.

    Авторское право © 1995, 2012 Oracle и/или его филиалы. Все права защищены.

    Как создать файл JAR

    Эта статья написана Джеком Ллойдом . Джек Ллойд — автор статей и редактор wikiHow по технологиям. У него более двух лет опыта написания и редактирования статей, связанных с технологиями. Он энтузиаст технологий и учитель английского языка.

    Техническая команда wikiHow также выполнила инструкции статьи и подтвердила, что они работают.

    Эту статью просмотрели 413 466 раз (а).

    Из этой статьи вы узнаете, как создать сжатую папку Java, также известную как файл JAR, с помощью бесплатной программы Java под названием Eclipse. Вы можете сделать это как на компьютерах Windows, так и на Mac.

    Изображение с названием Create JAR File Step 1

    Убедитесь, что у вас установлен Java Developer’s Kit. Если на вашем компьютере не установлен JDK, загрузите и установите его на свой компьютер с Windows или Mac, прежде чем продолжить.

    Изображение с названием Create JAR File Step 2

    • Если на вашем компьютере уже установлен Eclipse, переходите к следующей части .

    Щелкните ЗАГРУЗИТЬ . Это бирюзовая кнопка в верхней части страницы.

    Изображение с названием Create JAR File Step 4

    Щелкните ЗАГРУЗИТЬ . Эта оранжевая кнопка находится в верхней части следующей страницы. Eclipse будет загружен на ваш компьютер.

    Изображение с названием Create JAR File Step 5

    Подождите, пока Eclipse завершит загрузку. Загрузка может занять несколько минут.

    Изображение с названием Create JAR File Step 6

    • Windows. Дважды щелкните установочный файл Eclipse, затем нажмите Да, когда будет предложено.
    • Mac — дважды щелкните папку Eclipse ZIP, затем дождитесь распаковки файла.

    Изображение с названием Create JAR File Step 7

    • Если вы ранее щелкнули ссылку « Сменить зеркало» под оранжевой кнопкой ЗАГРУЗИТЬ , Eclipse может вместо этого открыться в основной программе. Если да, переходите к шагу «Нажмите Обзор ».

    Изображение с названием Create JAR File Step 8

    Щелкните Eclipse IDE для разработчиков Java . Это верхний вариант установщика Eclipse.

    Изображение с названием Create JAR File Step 9

    • Сначала вы можете изменить папку установки, щелкнув значок папки справа от поля «Папка установки», а затем выбрав конкретную папку на своем компьютере.
    • Если вы не хотите устанавливать ярлыки для Eclipse, снимите флажки с ярлыков, прежде чем нажимать УСТАНОВИТЬ .

    Изображение с названием Create JAR File Step 10

    Когда он появится, щелкните ЗАПУСК . Эта зеленая кнопка находится внизу окна установщика. Щелчок по нему откроет Eclipse.

    Изображение с названием Create JAR File Step 11

    Щелкните Обзор… . Он находится в правой части окна. Откроется окно проводника (Windows) или Finder (Mac).

    Изображение с названием Create JAR File Step 12

    Выберите папку рабочего пространства. Щелкните папку, которую вы хотите использовать, в левой части экрана. Здесь будут храниться файлы вашего проекта Eclipse.

    Изображение с названием Create JAR File Step 13

    Щелкните Выбрать папку . Он находится в правом нижнем углу окна.

    Изображение с названием Create JAR File Step 14

    Щелкните » Запустить» . Вы найдете это в нижней части окна. Откроется главная страница Eclipse.

    Изображение с названием Create JAR File Step 15

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

    Изображение с названием Create JAR File Step 16

    Щелкните Файл . Он находится в верхнем левом углу окна (Windows) или в верхнем левом углу экрана (Mac). Появится раскрывающееся меню.

    Изображение с названием Create JAR File Step 17

    Щелкните Открыть файл… . Эта опция находится в верхней части раскрывающегося меню.

    Изображение с названием Create JAR File Step 18

    Откройте папку с вашими файлами. Перейдите в папку, в которой находятся файлы, которые вы хотите использовать, затем дважды щелкните папку, чтобы открыть ее. Вы должны увидеть список файлов в окне.

    Изображение с названием Create JAR File Step 19

    Выберите содержимое вашей папки. Щелкните файл, затем нажмите Ctrl + A (Windows) или ⌘ Command + A (Mac), чтобы выбрать все файлы в папке.

    Изображение с названием Create JAR File Step 20

    Щелкните » Открыть» . Он находится в правом нижнем углу окна. Это откроет ваши файлы в Eclipse.

    Изображение с названием Create JAR File Step 21

    Щелкните Файл . Снова появится раскрывающееся меню « Файл» .

    Изображение с названием Create JAR File Step 22

    Щелкните Экспорт… . Он находится в нижней части раскрывающегося меню.

    Изображение с названием Create JAR File Step 23

    Дважды щелкните Java . Эта опция находится в верхней части страницы.

    Изображение с названием Create JAR File Step 24

    • Если вы хотите, чтобы файл JAR был исполняемым, как программа, выберите здесь параметр Runnable JAR file .

    Изображение с названием Create JAR File Step 25

    Щелкните Далее . Он находится внизу окна.

    Изображение с названием Create JAR File Step 26

    • Пропустите этот шаг, если вы решили создать исполняемый файл JAR.

    Изображение с названием Create JAR File Step 27

    Выберите место для сохранения. Нажмите « Обзор…» , введите имя файла, щелкните папку, в которой вы хотите сохранить файл JAR, и нажмите « Сохранить» .

    Изображение с названием Create JAR File Step 28

    Щелкните Готово . В результате будет создан ваш JAR-файл, хотя процесс сжатия может занять некоторое время.

    Создание JAR-файла на Java из командной строки или IDE

    Файл архива Java является инструментом архивирования, который содержит все компоненты исполняемого приложения Java. Все предопределенные библиотеки доступны в этом формате.

    Чтобы включить любой из них (кроме rt.jar) в свой проект, вы должны задать путь класса для данного конкретного файла архива. Вы можете создать файл JAR в Java, используя параметры командной строки или с помощью любого IDE.

    Создание Jar

    Вы можете создать Jar с помощью команды, как показано ниже.

    jar cf jar-file input-file(s)

    Рассмотрим пример, как создать программу Java с именем Sample.java –

    Sample.java

    public class Sample < public static void main(String args[])< System.out.println("Hi welcome to Tutorialspoint"); >>

    Если скомпилировать эту программу с помощью команды JAVAC, как показано ниже –

    C:\Examples >javac Sample.java

    Эта команда компилирует данный файл Java и генерирует файл .class (байт-код)

    Byte Code

    Теперь создайте файл для созданного класса, как –

    C:\Sample>jar cvf sample.jar *.class added manifest adding: Sample.class(in = 434) (out= 302)(deflated 30%)

    Это создаст файл для всех классов в текущем каталоге (так как мы использовали * вместо имени) с указанным именем.

    Jar File

    Создание при помощи IDE

    Вы также можете создавать архивы JAR, используя IDE. Чтобы создать файл с помощью eclipse, следуйте процедуре, приведенной ниже.

    1. Откройте мастер файлов Jar. Мастер Jar File можно использовать для экспорта содержимого проекта в файл JAR. Чтобы вызвать мастер Jar File –
    • В Package Explorer выберите элементы, которые вы хотите экспортировать. Если вы хотите экспортировать все классы и ресурсы в проекте, просто выберите проект.
    • Нажмите на меню Файл и выберите Экспорт.
    • В текстовом поле фильтра первой страницы мастера экспорта введите JAR.
    • Под категорией Java выберите файл JAR.
    • Нажмите на Далее.
    1. Использование мастера Jar File. На странице спецификации файла JAR –
    • Введите имя файла JAR и папку.
    • По умолчанию экспортируются только классы. Чтобы также экспортировать исходный код, установите флажок «Экспорт исходных файлов и ресурсов Java».
    • Нажмите Далее, чтобы изменить параметры упаковки JAR.
    • Нажмите Next, чтобы изменить спецификацию JAR Manifest
    • Нажмите на Готово.

    Средняя оценка 1.8 / 5. Количество голосов: 17

    Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.

    Или поделись статьей

    Видим, что вы не нашли ответ на свой вопрос.

    Помогите улучшить статью.

    Напишите комментарий, что можно добавить к статье, какой информации не хватает.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *