Как создать jar файл
Как создать исполняемый jar в Intellij IDEA / how to create jar in IDEA
Создаем исполняемый jar в Intellij IDEA
Как оказалось, не так то и просто найти в просторах интернета информацию об этом. Есть много ссылок на то, как это делается в Eclipse, а про Intellij IDEA сказано не многим больше нуля. Поэтому я создал этот пост. IntelliJ IDEA дает возможность быстро создавать исполняемый JAR-файл вашей программы, содержащий модули со всеми зависимостями. Для того, чтобы создать JAR, необходимо проделать всего 3 пункта:- Нажмите кнопку ‘+’ в диалоговом окне Project Structure и выберите соответствующий пункт (Рисунок 1):
Рисунок 1 – Project Structure -> Artifacts -> Jar -> From modules with dependencies Далее IntelliJ IDEA показывает диалог, позволяющий настроить новый артефакт (Рисунок 2):
Рисунок 2 – Диалог создания нового артефакта JAR
Здесь нужно выбрать главный класс вашего проекта и нажать ОKПосле нажатия клавиши ОК, вы можете создать файл Jar с помощью пункта меню Build -> Build Artifact
Рисунок 3 – Месторасположение сгенерированного JAR файла
По умолчанию все библиотеки будут извлечены в целевой Jar. Сам исполняемый файл будет сгенерирован в директории out -> artifacts вашего проекта (Рисунок 3):
Все, теперь исполняемый файл можно запускать.
Чем создать JAR файл? Программы для создания JAR файлов
JAR
Рассмотрим основные варианты, с помощью которых можно создать файл формата JAR (Java Archive File). Зачастую выполнение данной задачи не потребудет каких-либо особых хитростей, просто скачайте Java Development Kit (JDK) (для операционной системы Windows) - интерфейс программы не сложный, да и скачать ее вы можете бесплатно. Если же вы пользуетесь операционной системой Mac - скачайте Corel WinZip Mac как основную для данной платформы.
Вооружившись программой с правильным функционалом, вы наверняка не испытаете проблем с созданием файла JAR. Мы собрали в общий список все программы походящие под данную задачу для ОС Windows, Mac, Linux и сделали удобную таблицу:
Программы для создания JAR файлов
Чем создать JAR в Windows? Mac LinuxОбщее описание расширения JAR
Файл JAR представляет из себя архив Java, являющийся видом обычного ZIP-архива, содержащего определенную часть данных с элементами языка программирования Java. Для того, чтобы реализовать JAR файл в качестве исполняемого, он должен содержать файл MANIFEST.MF, помещенный в каталог META-INF, где будет указан главный программный класс. Данный класс должен хранить метод main.
Узнать подробнее что такое формат JAR
Знаете другие программы, которые могут создать JAR? Не смогли разобраться как создать файл? Пишите в комментариях - мы дополним статью и ответим на ваши вопросы.
Как создать Jar файл в Maven – Devcolibri
В этом уроке я покажу вам, как использовать Maven для создания Java проекта и упаковать его в *.jar файл, а также как сделать его исполняемым.
1) Создание Maven проекта.
Есть два способа создать Maven project:
1. С помощью maven command:
$ mvn archetype:generate -DgroupId=com.devcolibri.core -DartifactId=projectMy -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
2. С иcпользованием IDE, в моем случае это Intellij IDEA 11.3
2. Создание jar файла
Чтобы создать jar файл нам потребуется добавить в конфигурационный Maven файл pom.xml.
В этом файле в теге <pagckaging>jar</pagckaging>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.devcolibri.core</groupId> <artifactId>projectMy</artifactId> <packaging>jar</packaging> <version>1.0</version> <name>projectMy</name> <url>http://maven.apache.org</url> <properties> <jdk.version>1.6</jdk.version> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> </plugins> </build> </project>
Если вы попытаетесь собрать проект Maven, Maven упакует этот проект в “jar” файл с именем
"projectMy-1.0.jar"
, найти этот файл вы можете в корне проекта в папке target
.
3. Делаем *.jar исполняемым.
Для того, чтобы *.jar файл был исполняемый, мы должны объявить точку входа в приложениe через maven-jar-plugin
в pom.xml
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest> <mainClass>com.devcolibri.core.Main</mainClass> </manifest> </archive> </configuration> </plugin>
Чтобы выполнить jar файл, используйте java -jar
:
$ java -jar superman-1.0.jar Hello World!
Как создать исполняемый JAR с помощью Maven
В этой статье мы рассмотрим упаковку Maven- проекта в файл Jar. Выясним преимущества и недостатки каждого из подходов, применяемых для создания исполняемого файла.
Чтобы создать исполняемый файл jar, не требуются дополнительные зависимости. Нам нужно просто создать Java-проект Maven с одним классом и методом main(…).
В приведенном ниже примере мы создаем Java-класс ExecutableMavenJar. Для этого в файл pom.xml нужно добавить следующие элементы:
<modelVersion>4.0.0</modelVersion> <groupId>com.baeldung</groupId> <artifactId>core-java</artifactId> <version>0.1.0-SNAPSHOT</version> <packaging>jar</packaging>
Удостоверьтесь в том, что в конфигурации задан тип jar. Теперь можно приступить к реализации каждого из подходов.
Для этого мы используем плагин maven-dependency-plugin. Сначала скопируем все необходимые зависимости в указанную папку:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/libs </outputDirectory> </configuration> </execution> </executions> </plugin>
Сначала мы задаем цель copy-dependencies, что указывает Maven скопировать эти зависимости в заданный outputDirectory.
В данном случае мы создадим папку с именем libs внутри каталога сборки проекта (обычно это папка target).
Затем мы создаем исполняемый файл jar с указанными путями к классам и со ссылкой на зависимости, скопированные на первом шаге:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>libs/</classpathPrefix> <mainClass> org.baeldung.executable.ExecutableMavenJar </mainClass> </manifest> </archive> </configuration> </plugin>
Наиболее важной частью приведенного выше кода является конфигурация manifest. В ней мы добавляем classpath со всеми зависимостями (папка libs/), а также предоставляем информацию о главном классе.
Преимущества и недостатки этого подхода:
- Преимущества — прозрачный процесс, в рамках которого можно прописать каждый шаг.
- Недостатки — зависимости находятся вне финального файла jar. Поэтому он будет работать только, если папка libs будет доступна и видима для jar-файла.
Плагин Apache Maven Assembly позволяет объединять выходные данные проекта вместе с зависимостями, модулями, документацией и другими файлами в единый пакет.
Основной целью в плагине сборки является single. Она используется для создания любых сборок. Остальные цели устарели и будут удалены в следующей версии плагина.
Рассмотрим конфигурацию, заданную в файле pom.xml:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <archive> <manifest> <mainClass> org.baeldung.executable.ExecutableMavenJar </mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </execution> </executions> </plugin>
Как и при ручной настройке, сначала нужно предоставить информацию о главном классе. Но плагин автоматически скопирует все необходимые зависимости в файл JAR .
В descriptorRefs мы указали имя, которое будет добавлено к имени проекта. В нашем случае – это core-java-jar-with-dependencies.jar.
- Преимущества – зависимости хранятся внутри jar-файла.
- Недостатки — упрощенный контроль упаковки артефакта. Например, нет поддержки перемещения классов.
Плагин позволяет упаковывать артефакт в uber-jar, который включает в себя все зависимости, необходимые для запуска проекта. Кроме того, он поддерживает переименование пакетов некоторых зависимостей.
Рассмотрим приведенную ниже конфигурацию:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <goals> <goal>shade</goal> </goals> <configuration> <shadedArtifactAttached>true</shadedArtifactAttached> <transformers> <transformer implementation= "org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>org.baeldung.executable.ExecutableMavenJar</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin>
В этой конфигурации <shadedArtifactAttached> отмечает все зависимости, которые должны быть упакованы в файл jar.
Затем нам нужно указать реализацию трансформатора. В текущем примере мы использовали стандартную версию. В конце задаем основной класс приложения.
Выходной файл получит название core-java-0.1.0-SNAPSHOT-shaded.jar, где core-java — это имя проекта. За ним следуют версия и имя плагина.
- Преимущества — зависимости внутри jar-файла, расширенный контроль упаковки артефакта.
- Недостатки — сложная конфигурация (особенно если необходимо использовать расширенные функции).
Плагин предоставляет собственный загрузчик, который знает, как загружать классы и ресурсы из jar-файлов архива.
Рассмотрим приведенную ниже конфигурацию:
<plugin> <groupId>com.jolira</groupId> <artifactId>onejar-maven-plugin</artifactId> <executions> <execution> <configuration> <mainClass>org.baeldung.executable. ExecutableMavenJar</mainClass> <attachToBuild>true</attachToBuild> <filename> ${project.build.finalName}.${project.packaging} </filename> </configuration> <goals> <goal>one-jar</goal> </goals> </execution> </executions> </plugin>
Сначала необходимо указать основной класс и прикрепить все зависимости сборки, используя для этого attachToBuild = true .
Также необходимо задать имя файла для вывода. Цель Maven — это one-jar.
В One Jar зависимости jar не будут расширены в файловую систему во время выполнения.
- Преимущества — позволяет классам располагаться на верхнем уровне One Jar. Плагин поддерживает внешние jar и собственные библиотеки.
- Недостатки – не обновляется с 2012 года.
Плагин позволяет упаковывать исполняемые архивы jar или war и запустить приложение «на месте». Он поддерживает Maven версии 3.2 или выше. Более подробное описание плагина доступно здесь.
Рассмотрим приведенную ниже конфигурацию:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>spring-boot</classifier> <mainClass> org.baeldung.executable.ExecutableMavenJar </mainClass> </configuration> </execution> </executions> </plugin>
Между Spring и другими плагинами есть два существенных отличия: цель выполнения называется repackage, а классификатор — spring-boot . Обратите внимание, что плагин можно использовать без Spring Boot.
- Достоинства – зависимости располагаются внутри jar- файла, его можно запускать в любом доступном месте, улучшенный контроль упаковки артефакта, исключение зависимостей из jar-файла и упаковка war файлов.
- Недостатки — добавляет ненужные классы, связанные с Spring и Spring Boot.
В последней части статьи мы рассмотрим упаковку автономного веб-приложения в jar-файл. Но для этого понадобится другой плагин.
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.0</version> <executions> <execution> <id>tomcat-run</id> <goals> <goal>exec-war-only</goal> </goals> <phase>package</phase> <configuration> <path>/</path> <enableNaming>false</enableNaming> <finalName>webapp.jar</finalName> <charset>utf-8</charset> </configuration> </execution> </executions> </plugin>
Чтобы создать jar-файл, запустите man package, который создаст webapp.jar в каталоге target.
Чтобы запустить приложение, просто введите в консоли: java -jar target / webapp.jar и проверьте результат по адресу: localhost:8080/.
- Преимущества — наличие одного файла, простота развертывания и запуска.
- Недостатки — размер файла намного больше.
Обратите внимание на то, что это последняя версия данного плагина, поддерживающая сервер Tomcat7. Чтобы избежать ошибок, обязательно убедитесь в том, что для зависимости Servlets scope задано значение provided. Иначе во время выполнения jar-файла возникнет конфликт:
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency>
В этой статье мы рассмотрели несколько способов создания исполняемого jar-файла с помощью различных плагинов Maven. Полную реализацию этого руководства вы сможете найти в проектах, опубликованных на Github:
Исполняемый jar
Исполняемый war
Как проверить? Чтобы скомпилировать проект в исполняемый файл jar, запустите Maven с помощью команды mvn clean package.
Надеемся, что данная статья помогла разобраться в этой теме.
Данная публикация представляет собой перевод статьи «How to Create an Executable JAR with Maven» , подготовленной дружной командой проекта Интернет-технологии.ру
Как создать файл jar со структурой пакета?
У меня есть структура папок
/com/cdy/ws/a.class files /com/cdy/ws/b.class files /com/cdy/ws/c.class files
когда я запускаю следующую команду " jar cvf asd.сосуд.* класс " он дает jar со всеми файлами класса. Но структура папок не создается. Все файлы классов должны быть в разделе " com.cdy / ws", но все классы находятся на одном уровне META-INF. Может ли кто-нибудь сказать мне, что такое команда для создания структуры пакета?
спасибо
10 ответов
вам нужно начать создавать банку в root файлы.
так, например:
jar cvf program.jar -C path/to/classes .
, что предполагает, что path/to/classes
содержит
60
автор: Adam Batkin
вы хотите
$ jar cvf asd.jar .
чтобы указать каталог (например,.
) в jar
from. Это будет поддерживать структуру папок в файле jar.
10
автор: Brian Agnew
из каталога, содержащего :
$ jar cvf asd.jar com added manifest adding: com/(in = 0) (out= 0)(stored 0%) adding: com/cdy/(in = 0) (out= 0)(stored 0%) adding: com/cdy/ws/(in = 0) (out= 0)(stored 0%) adding: com/cdy/ws/a.class(in = 0) (out= 0)(stored 0%) adding: com/cdy/ws/b.class(in = 0) (out= 0)(stored 0%) adding: com/cdy/ws/c.class(in = 0) (out= 0)(stored 0%) $ jar -tf asd.jar META-INF/ META-INF/MANIFEST.MF com/ com/cdy/ com/cdy/ws/ com/cdy/ws/a.class com/cdy/ws/b.class com/cdy/ws/c.class
Шаг 1: Перейдите в каталог, где классы хранятся с помощью командной строки (или командной строки Linux shell)
Как для проекта.C:/workspace/MyProj/bin/classess/com/test/*.class
Go Directory bin с помощью команды:
cd C:/workspace/MyProj/bin
Шаг 2: используйте команду ниже для создания файла jar.
jar cvf helloworld.jar com\test\hello\Hello.class com\test\orld\HelloWorld.class
используя вышеуказанную команду, классы будут помещены в банку в структуре каталогов.
7
автор: Vinayak Dornala
этот код ниже дал мне правильный ответ
jar cvf MyJar.jar *.properties lib/*.jar -C bin .
Он добавил файл свойств (log4j), он добавил файлы jar в lib. и затем он вошел в bin, чтобы получить файлы класса с пакетом.
указанное имя папки должно быть на C:\Program Files\Java\jdk1.7.0_02\bin
путь Foldername с файлами классов.
C:\Program Files\Java\jdk1.7.0_02\bin>jar cvf program1.jar Foldername
теперь программа 1.jar создаст в C:\Program файлы\Java\jdk1.7.0_02\bin путь
2
автор: Swati Pisal
просто больше, чем выше
храните содержимое упаковки Java в каталоге и убедитесь, что внутри нет ничего, кроме ваших пакетов Java и соответствующих классов Java.
-
открыть команду (если Windows) приглашение, добраться до содержащего путь к каталогу, как показано ниже -
C:>cd "C:\Users\UserABC\Downloads\Current папка"
C:\Users\UserABC\Downloads\Current Папка>
jar cvf hello-world-1.0.1.jar .
0
автор: ArifMustafa
чтобы избежать добавления исходных файлов .java
к вашему пакету вы должны сделать
cd src/ jar cvf mylib.jar com/**/*.class
предполагалось, что ваша структура проекта была как
myproject/ src/ com/ mycompany/ mainClass.java mainClass.class
0
автор: loretoparisi
это то, что я делаю внутри .sh файл, давайте рассмотрим install.sh
#!/bin/sh echo Installing cd .../Your_Project_Directory/com/cdy/ws/ jar cfe X.jar Main *.class cd .../Your_Project_Directory/ ln -s .../Your_Project_Directory/com/cdy/ws/X.jar X echo Testing... java -jar X echo You are Good to Go...Use hapily #etc.
создание исполняемого файла Jar в каталоге классов и создание символической ссылки в любом месте.
запустите его с помощью,
$ sh install.sh[ENTER] $ java -jar X[ENTER]
0
автор: Sayan Shankhari
предположим, что структура папок проекта выглядит следующим образом:
c:\test\classes\com\test\awt\Example.class c:\test\classes\manifest.txt
вы можете выполнить следующую команду, чтобы создать "пример.сосуд.
пример jar-cvfm.jar manifest.txt com / test / awt/*.класс!--2-->
Например :
перейти к структуре папок из командной строки "cd C:\test\classes"
C:\test\classes>пример jar-cvfm.jar manifest.txt com / test / awt/*.класс!--2-->
JAR-Файлы - Java программирование | ExamClouds
Для удобства распространения приложения, в Java существует такой механизм как JAR (Java Archive) файлы. JAR-файлы используются для архивации и сжатия данных.
Базовый формат команды для создания JAR-файла такой:
jar -cf jar-файл входной-файл(ы)
Сгерированный JAR-файл будет помещен в текущий каталог.
Рассмотрим ключи и аргументы, использованные в этой команде:
- Ключ
c
показывает, что необходимо создать (create) JAR-файл. - Ключ
f
показывает, что необходимо направить вывод в файл, а не в стандартный поток вывода. jar-файл
- это имя, которое необходимо дать результирующему JAR-файлу. Вы можете использовать любое имя для JAR-файл. По соглашению, имени JAR-файла дается расширение .jar, хотя это и необязательно.- Аргумент
входной-файл(ы)
- список с разделителем пробелом из одного или более файлов, которые вы хотите поместить в ваш JAR-файл. Аргументвходной-файл(ы)
может содержать также символ джокер *. Если любые из входных файлов являются каталогами, содержимое этих каталогов рекурсивно добавляется в архив JAR.
Правила относительно структуры JAR-файла.
- Команда
jar
автоматически создаст META-INF каталог. - Команда
jar
автоматически создаст MANIFEST.MF и поместит его в META-INF каталог. - Сохраняется точная структура каталогов.
- Команды
java
иjavac
могут использовать JAR-файл как нормальное дерево каталогов. - Поиск JAR-файлов с помощью ключа
-cp
аналогичен поиску пакетных файлов. Единственная разница - путь к JAR-файлу должен содержать имя JAR-файла (например classes/project1.jar).
Рассмотрим на примере как создаются и используются JAR файлы.
Допустим, что наше приложение имеет следующую структуру каталогов:
Создадим JAR-файл project1.jar, который будет содержать пакеты first
и second
:
cd project1/classes
jar –cf project1.jar first second
Можем просмотреть содержимое project1.jar файла с помощью следующей команды:
jar -tf project1.jar
Результат выполнения будет приблизительно такой:
META-INF/
META-INF/MANIFEST.MF
first/
first/Example1.class
second/
second/Example2.class
Перенесем созданный project1.jar файл в каталог lib и запустим на выполнение программу first.Example
:
cd lib
java -cp project1.jar first.Example1
Создание файла JAR (Руководства по Java ™> Развертывание> Упаковка программ в файлы JAR)
Основной формат команды для создания файла JAR:
jar cf jar-файл входной файл (ы)
В этой команде используются следующие параметры и аргументы:
- Параметр c указывает, что вы хотите создать файл JAR.
- Параметр f указывает, что вы хотите, чтобы вывод шел в файл , а не в стандартный вывод.
- jar-file - это имя, которое вы хотите, чтобы получившийся JAR-файл имел. Вы можете использовать любое имя файла для файла JAR. По соглашению, имена файлов JAR имеют расширение .jar, хотя это не обязательно.
- Аргумент input-file (s) - это список одного или нескольких файлов, разделенных пробелами, которые вы хотите включить в свой JAR-файл. Аргумент входного файла (ов) может содержать подстановочный знак *. Если какие-либо из «входных файлов» являются каталогами, содержимое этих каталогов рекурсивно добавляется в архив JAR.
Опции c и f могут появляться в любом порядке, но между ними не должно быть пробелов.
Эта команда сгенерирует сжатый файл JAR и поместит его в текущий каталог. Команда также сгенерирует файл манифеста по умолчанию для архива JAR.
Примечание:
Метаданные в файле JAR, такие как имена записей, комментарии и содержимое манифеста, должны быть закодированы в UTF8.
Вы можете добавить любой из этих дополнительных параметров к параметрам cf базовой команды:
Опция | Описание |
---|---|
в | Выдает подробный вывод на стандартный вывод во время построения файла JAR.Подробный вывод сообщает вам имя каждого файла по мере его добавления в файл JAR. |
0 (ноль) | Указывает, что вы не хотите, чтобы файл JAR был сжат. |
M | Указывает, что файл манифеста по умолчанию не должен создаваться. |
м | Используется для включения информации манифеста из существующего файла манифеста. Формат использования этой опции: jar cmf jar-файл существующий-манифест входной файл (ы)Видеть Изменение файла манифеста для получения дополнительной информации об этой опции.
Предупреждение: Манифест должен заканчиваться новой строкой или символом возврата каретки. Последняя строка не будет проанализирована должным образом, если она не заканчивается новой строкой или возвратом каретки. |
-C | Для смены директорий во время выполнения команды. См. Пример ниже. |
Примечание:
Когда вы создаете файл JAR, время создания сохраняется в файле JAR. Следовательно, даже если содержимое файла JAR не изменится, когда вы создаете файл JAR несколько раз, полученные файлы не будут полностью идентичны.Вы должны знать об этом, когда используете файлы JAR в среде сборки. Для управления версиями файла JAR рекомендуется использовать информацию о версиях в файле манифеста, а не время создания. Увидеть Раздел «Настройка информации о версии пакета».
Пример
Давайте посмотрим на пример. Простой апплет TicTacToe. Вы можете увидеть исходный код этого апплета, загрузив пакет JDK Demos and Samples с Загрузки Java SE. Эта демонстрация содержит файлы классов, аудиофайлы и изображения, имеющие такую структуру:
Иерархия папок TicTacToeПодкаталоги audio и images содержат звуковые файлы и изображения GIF, используемые апплетом.
Вы можете получить все эти файлы из каталога jar / examples , если загрузите весь учебник онлайн. Чтобы упаковать эту демонстрацию в один файл JAR с именем TicTacToe.jar, вы должны запустить эту команду из каталога TicTacToe:
jar cvf TicTacToe.jar TicTacToe.class аудио изображения
Аргументы audio и images представляют каталоги, поэтому инструмент Jar рекурсивно помещает их и их содержимое в файл JAR. Сгенерированный JAR-файл TicTacToe.jar будет помещен в текущий каталог. Поскольку команда использовала параметр v для подробного вывода, вы увидите что-то похожее на этот вывод, когда запустите команду:
добавление: TicTacToe.class (in = 3825) (out = 2222) (спущено 41%) добавление: audio / (in = 0) (out = 0) (сохранено 0%) добавление: audio / beep.au (in = 4032) (out = 3572) (спущено на 11%) добавление: audio / ding.au (in = 2566) (out = 2055) (спущено на 19%) добавление: audio / return.au (in = 6558) (out = 4401) (спущено 32%) добавление: audio / yahoo1.au (in = 7834) (out = 6985) (спущено на 10%) добавление: audio / yahoo2.au (in = 7463) (out = 4607) (спущено 38%) добавление: images / (in = 0) (out = 0) (сохранено 0%) добавление: images / cross.gif (in = 157) (out = 160) (спущено -1%) добавление: images / not.gif (in = 158) (out = 161) (deflated -1%)
Из этого вывода видно, что файл JAR TicTacToe.jar сжат. Инструмент Jar по умолчанию сжимает файлы. Вы можете отключить функцию сжатия, используя параметр 0 (ноль), чтобы команда выглядела так:
jar cvf0 TicTacToe.jar Звуковые изображения TicTacToe.class
Возможно, вы захотите избежать сжатия, например, чтобы увеличить скорость, с которой файл JAR может загружаться браузером.Несжатые файлы JAR обычно можно загружать быстрее, чем сжатые файлы, поскольку отпадает необходимость распаковывать файлы во время загрузки. Однако есть компромисс в том, что время загрузки по сети может быть больше для больших несжатых файлов.
Инструмент Jar принимает аргументы, в которых используется подстановочный знак *. Если в каталоге TicTacToe не было никаких нежелательных файлов, вы могли использовать эту альтернативную команду для создания файла JAR:
Хотя подробный вывод этого не указывает, инструмент Jar автоматически добавляет файл манифеста в архив JAR с именем пути META-INF / MANIFEST.MF. Увидеть Работа с файлами манифеста: раздел Основы для получения информации о файлах манифеста.
В приведенном выше примере файлы в архиве сохранили свои относительные имена путей и структуру каталогов. Инструмент Jar предоставляет параметр -C, который можно использовать для создания файла JAR, в котором относительные пути к заархивированным файлам не сохраняются. Он создан по образцу опции -C в TAR.
В качестве примера предположим, что вы хотите поместить аудиофайлы и изображения в формате GIF, используемые демонстрацией TicTacToe, в файл JAR, и что вы хотите, чтобы все файлы находились на верхнем уровне без иерархии каталогов.Вы можете сделать это, выполнив эту команду из родительского каталога изображений и аудио каталогов:
jar cf ImageAudio.jar -C images. -С аудио.
Часть этой команды -C images указывает инструменту Jar перейти в каталог изображений, а файл. следующий -C images указывает инструменту Jar архивировать все содержимое этого каталога. -C audio. часть команды затем делает то же самое с каталогом аудио. Результирующий JAR-файл будет иметь следующее содержание:
МЕТА-ИНФ / МАНИФЕСТ.MF cross.gif not.gif beep.au ding.au return.au yahoo1.au yahoo2.au
Напротив, предположим, что вы использовали команду, в которой не использовалась опция -C:
jar cf ImageAudio.jar изображения аудио
Результирующий файл JAR будет иметь следующее содержание:
МЕТА-ИНФ / МАНИФЕСТ.MF images / cross.gif images / not.gif audio / beep.au audio / ding.au audio / return.au audio / yahoo1.au audio / yahoo2.au.
java - Как создать файл jar со структурой пакета?
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
- Вакансии Программирование и связанные с ним технические возможности карьерного роста
java - Как сделать исполняемый файл JAR?
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
java - Как создать файл jar из проекта github
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями
как создать файл java jar с исходным кодом (файлы .java)?
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
- Вакансии Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
java - Как создать файл jar из существующего файла jar?
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
- Вакансии Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
- Реклама Обратитесь к разработчикам и технологам со всего мира
- О компании