Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

фляга - Инструмент Архива Java

фляга комбинирует многократные файлы в единственный архивный файл JAR.

РЕЗЮМЕ

Создайте файл фляги
jar c[v0M]f jarfile [-C dir] inputfiles [-Jопция]
jar c[v0]mf декларация jarfile [-C dir] inputfiles [-Jопция] [-e entrypoint]
jar c[v0M] [-C dir] inputfiles [-Jопция]
jar c[v0]m декларация [-C dir] inputfiles [-Jопция]
Файл фляги обновления
jar u[v0M]f jarfile [-C dir] inputfiles [-Jопция]
jar u[v0]mf декларация jarfile [-C dir] inputfiles [-Jопция] [-e entrypoint]
jar u[v0M] [-C dir] inputfiles [-Jопция]
jar u[v0]m декларация [-C dir] inputfiles [-Jопция]
Файл фляги извлечения
jar x[v]f jarfile [inputfiles] [-Jопция]
jar x[v] [inputfiles] [-Jопция]
Оглавление списка файла фляги
jar t[v]f jarfile [inputfiles] [-Jопция]
jar t[v] [inputfiles] [-Jопция]
Добавьте индекс, чтобы сотрясать файл
jar i jarfile [-Jопция]

где:

cuxtiv0Mmf
Опции, которые управляют jar команда.
jarfile
Имя файла файла Фляги, который будет создан (c), обновленный (u), извлеченный (x), или имейте его просматриваемое оглавление (t).-f опция и имя файла jarfile являются парой - если любой присутствует, они должны оба появиться. Отметьте, что исключение-f и jarfile принимает файл фляги от стандартного ввода (для x и t) или отправляет файл фляги стандартному выводу (для c и u).
inputfiles
Файлы или каталоги, разделенные пробелами, чтобы быть объединенным в jarfile (для c и u), или быть извлеченным (для x) или перечисленным (для t) от jarfile. Все каталоги обрабатываются рекурсивно. Файлы сжимаются, если опция-0 (нуль) не используется.
декларация
Существующий ранее файл манифеста, чье имя: пары значения должны быть включены в MANIFEST.MF в файле фляги.-m опция и декларация имени файла являются парой - если любой присутствует, они должны оба появиться. Буквы м. и f должны появиться в том же самом порядке, которые проявляют и jarfile, появляются.
entrypoint
Имя класса, которые устанавливают как точка входа приложения для автономных приложений, связанных в исполнимый файл фляги.-e опция и entrypoint являются парой - если любой присутствует, они должны оба появиться. Буквы м., f и e должны появиться в том же самом порядке, которые проявляют, jarfile, entrypoint, появляются.
-C dir
Временно каталоги изменений к dir, обрабатывая следующий inputfiles параметр. Многократный-C dir inputfiles наборы позволяется.
-Jопция
Опцию передают в среду выполнения Java. (Не должно быть никакого пространства между-J и опцией).

ОПИСАНИЕ

Инструмент фляги комбинирует многократные файлы в единственный архивный файл JAR. фляга является инструментом архивирования и сжатия общего назначения, основанным на ZIP и формате сжатия ZLIB. Однако, фляга была разработана, главным образом, чтобы облегчить упаковку апплетов java или приложений в единственный архив. Когда компоненты апплета или приложения (.class файлы, изображения и звуки) объединяются в единственный архив, они могут быть загружены агентом java (как браузер) в единственной транзакции HTTP, вместо того, чтобы требовать нового соединения для каждой части. Это существенно улучшает времена загрузки. фляга также сжимает файлы и столь далее улучшает время загрузки. Кроме того, это позволяет отдельным записям в файле быть подписанными автором апплета так, чтобы их источник мог аутентифицироваться. Синтаксис для инструмента фляги почти идентичен синтаксису для команды tar. Архив фляги может использоваться в качестве записи пути к классу, сжимается ли он.

Типичное использование, чтобы объединить файлы в файл фляги:

C:\Java> jar cf myFile.jar *.class
В этом примере все файлы класса в текущем каталоге помещаются в файл, названный "myFile.jar". Запись файла манифеста под названием META-INF/MANIFEST.MF автоматически сгенерирована инструментом фляги и всегда является первой записью в файле фляги. Файл манифеста является местом, где любая метаинформация об архиве сохранена как имя: пары значения. Обратитесь к спецификации файла JAR для деталей о том, как метаинформация сохранена в файле манифеста.

Если у Вас есть существующий ранее файл манифеста чье имя: пары значения, которых Вы хотите, чтобы инструмент фляги включал для нового архива фляги, можно определить это использующий-m опцию:

C:\Java> jar cmf myManifestFile myFile.jar *.class
Существующий файл манифеста должен закончиться новым знаком строки. фляга не анализирует последнюю строку файла манифеста, если это не заканчивается новым знаком строки.

Отметьте: команда фляги, которая определяет, подтверждает на командной строке вместо cmf (порядок-m, и-f опции инвертируются), командная строка фляги должна определить, что имя фляги архивирует сначала, сопровождаемый именем файла манифеста:
C:\Java> jar cfm myFile.jar myManifestFile *.class
Декларация находится в текстовом формате, вдохновленном форматом ASCII RFC822, таким образом, легко просмотреть и обработать содержание файла манифеста.

Чтобы извлечь файлы из файла фляги, используйте-x, как в:

C:\Java> jar xf myFile.jar

Чтобы извлечь только определенные файлы из файла фляги, предоставьте их имена файлов:

C:\Java> jar xf myFile.jar foo bar

Начинаясь с Java, 2 SDK v1.3, утилита jar поддерживает JarIndex, который позволяет загрузчикам класса приложений загружать классы более эффективно из файлов фляги. Если приложение или апплет будут связаны в многократные файлы фляги, то только необходимые файлы фляги будут загружены и открыты, чтобы загрузить классы. Эта оптимизация производительности включается, выполняя jar с-i опцией. Это генерирует информацию о расположении пакета для указанного основного файла фляги и всех файлов фляги, от которых это зависит, который должен быть определен в атрибуте Class-Path основной декларации файла фляги.

C:\Java> jar i main.jar

В этом примере файл INDEX.LIST вставляется в каталог META-INF main.jar.
Загрузчик класса приложений будет использовать информацию, хранившую в этом файле для эффективной загрузки класса. Обратитесь к спецификации JarIndex для деталей о том, как информация расположения хранится в индексном файле.

Стандартный способ скопировать каталоги состоит в том, чтобы сначала сжать файлы в dir1 к стандарту, затем извлечь из стандарта в к dir2 (исключение f от обоих jar команды):

C:\Java> (cd dir1; jar c .) | (cd dir2; jar x)

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

ОПЦИИ

c
Создает новый архивный файл, названный jarfile (если f определяется) или к стандартному выводу (если f и jarfile опускаются). Добавьте к этому файлы и каталоги, определенные inputfiles.
u
Обновляет существующий файл jarfile (когда f определяется), добавляя к этому файлы и каталоги, определенные inputfiles. Например:
jar uf foo.jar foo.class
добавляет файл foo.class к существующему файлу фляги foo.jar.-u опция может также обновить явную запись, как дано этим примером:
jar umf manifest foo.jar
обновляет декларацию foo.jar с именем: пары значения в manifest.
x
Файлы извлечений и каталоги от jarfile (если f определяется) или стандартный ввод (если f и jarfile опускаются). Если inputfiles определяется, только те указанные файлы и каталоги извлекаются. Иначе, все файлы и каталоги извлекаются. Время и дата извлеченных файлов - данные в архиве.
t
Перечисляет оглавление от jarfile (если f определяется) или стандартный ввод (если f и jarfile опускаются). Если inputfiles определяется, только те указанные файлы и каталоги перечисляются. Иначе, все файлы и каталоги перечисляются.
i
Генерируйте информацию об индексе для указанного jarfile и его зависимых файлов фляги. Например:
jar i foo.jar

генерирует INDEX.LIST файл в foo.jar который содержит информацию о расположении для каждого пакета в foo.jar и все файлы фляги, определенные в Class-Path атрибут foo.jar. См. индексный пример.

f
Определяет файл jarfile, чтобы быть созданным (c), обновленный (u), извлеченный (x), индексированный (i), или просматриваемый (t).-f опция и имя файла jarfile являются парой - если существующий, они должны оба появиться. Исключение f и jarfile принимает "файл фляги" от стандартного ввода (для x и t) или отправляет "файл фляги" стандартному выводу (для c и u).
v
Генерирует многословный вывод к стандартному выводу. Примеры, показанные ниже.
0
(нулевое) Хранилище, не используя сжатие ZIP.
M
Не создавайте запись файла манифеста (для c и u), или удаляйте запись файла манифеста, если Вы существуете (для u).
m
Включает имя: оцените пар атрибута от указанной декларации файла манифеста в файле в META-INF/MANIFEST.MF. Имя: пара значения добавляется, если каждый уже не существует с тем же самым именем, когда его значение обновляется.

На командной строке буквы м. и f должны появиться в том же самом порядке, которые проявляют, и jarfile появляются. Использование в качестве примера:

jar cmf myManifestFile myFile.jar *.class
Можно добавить имя специального назначения: оцените пар атрибута декларации, которые не содержатся в декларации по умолчанию. Например, можно добавить атрибуты, определяющие информацию о поставщике, информацию о версии, изоляцию пакета, или сделать связанную JAR исполнимую программу приложений. См., что Файлы JAR запаздывают в Учебном руководстве по Java для примеров использования-m опции.
e
Наборы entrypoint как точка входа приложения для автономных приложений связывались в исполнимый файл фляги. Использование этой опции создает или переопределяет значение атрибута Основного класса в файле манифеста. Эта опция может использоваться во время создания файла фляги или обновляя файл фляги. Эта опция определяет точку входа приложения, не редактируя или создавая файл манифеста.

Например, эта команда создает Main.jar где значение атрибута Основного класса в декларации устанавливается в Main:
jar cfe Main.jar Main Main.class

Среда выполнения Java может непосредственно вызвать это приложение, выполняя следующую команду:

java -jar Main.jar
Если entrypoint имя класса находится в пакете, оно может использовать любого точка (". ") или наклонная черта (" / ") символ как разделитель. Например, если Main.class находится в вызванном пакете foo точка входа может быть определена следующими способами:
jar -cfe Main.jar foo/Main foo/Main.class
или
jar -cfe Main.jar foo.Main foo/Main.class
Отметьте: определение и-m и-e опции вместе, когда данная декларация также содержит результаты атрибута Основного класса в ambigous Main.class спецификация, приводя к ошибке и работе создания или обновления фляги прерывается.

 dir -C
Временно каталоги изменений (cd dir) во время выполнения команды jar, обрабатывая следующий inputfiles параметр. Его работа предназначается, чтобы быть подобной-C опции утилиты tar UNIX. Например:
jar uf foo.jar -C classes bar.class
изменения к каталогу classes и добавляют bar.class от того каталога до foo.jar. Следующая команда,
jar uf foo.jar -C classes . -C bin xyz.class
изменения к каталогу classes и добавляют к foo.jar все файлы в пределах каталога classes (не создавая каталог классов в файле фляги), затем возвращаются к исходному каталогу прежде, чем измениться на каталог bin, чтобы добавить xyz.class к foo.jar. Если classes содержит файлы bar1 и bar2, тогда вот то, что файл фляги содержит использование jar tf foo.jar:
META-INF/
META-INF/MANIFEST.MF
bar1
bar2
xyz.class
-Jопция
Опция передачи к среде выполнения Java, где опция является одной из опций, описанных на ссылочной странице для средства запуска приложения java. Например, -J-Xmx48M устанавливает максимальную память в 48 мегабайтов. Это - общее соглашение для-J, чтобы передать опции к базовой среде выполнения.

ФАЙЛЫ ПАРАМЕТРА КОМАНДНОЙ СТРОКИ

Чтобы сократить или упростить командную строку фляги, можно определить один или более файлов, которые непосредственно содержат параметры jar команда (кроме-J опций). Это позволяет Вам создать команды фляги любой длины, преодолевая пределы командной строки, наложенные операционной системой.

Файл параметра может включать опции и имена файлов. Параметры в пределах файла могут быть разделены пробелом или разделены от новой строки. Имена файлов в пределах файла параметра относительно текущего каталога, не относительно расположения файла параметра. Подстановочные знаки (*), который мог бы иначе быть расширен оболочкой операционной системы, не расширяются. Использование символ, чтобы рекурсивно интерпретировать файлы не поддерживается.-J опции не поддерживаются, потому что их передают к средству запуска, которое не поддерживает файлы параметра.

Выполняя флягу, передайте в пути и имени каждого файла параметра с @ ведущий символ. Когда фляга встречается с параметром, начинающимся с символа @, это разворачивает содержание того файла в список параметров.

Например, можно использовать единственный названный файл параметра classes.list содержать имена файлов:

C:\Java> dir /b *.class > classes.list

Затем выполните передачу команды фляги в argfile:

C:\Java> jar cf my.jar @classes.list
В файле параметра можно передать с путем, но любые имена файлов в файле параметра, у которых есть относительные пути, относительно текущего рабочего каталога, не пути, в котором передают. Вот такой пример:
C:\Java> jar @path1/classes.list

ПРИМЕРЫ

Добавить все файлы в определенном каталоге к архиву (перезаписывающий содержание, если архив уже существует). Перечисление многословно (с v опцией) скажет Вам больше информации о файлах в архиве, таких как их размер и продлится измененная дата.
C:\Java> dir
12/09/96  12:20a        <DIR>          .
12/09/96  12:17a        <DIR>          ..
12/09/96  12:18a                   946 1.au
12/09/96  12:18a                 1,039 2.au
12/09/96  12:18a                   993 3.au
12/09/96  12:19a                48,072 spacemusic.au
12/09/96  12:19a                   527 at_work.gif
12/09/96  12:19a                12,818 monkey.jpg
12/09/96  12:19a                16,242 Animator.class
12/09/96  12:20a                 3,368 Wave.class
              10 File(s)        91,118 bytes

C:\Java> jar cvf bundle.jar *
adding manifest
adding: 1.au
adding: 2.au
adding: 3.au
adding: Animator.class
adding: Wave.class
adding: at_work.gif
adding: monkey.jpg
adding: spacemusic.au

Если у Вас уже есть отдельные подкаталоги для изображений, аудиофайлов и классов, можно объединить их в единственный файл фляги:

C:\Java> dir
12/09/96  12:11a        <DIR>          .
12/09/96  12:17a        <DIR>          ..
12/03/96  06:54p        <DIR>          audio
12/06/96  02:02p        <DIR>          images
12/09/96  12:10a        <DIR>          classes
               5 File(s)        207,360 bytes

C:\Java> jar cvf bundle.jar audio classes images
adding: audio/1.au
adding: audio/2.au
adding: audio/3.au
adding: audio/spacemusic.au
adding: classes/Animator.class
adding: classes/Wave.class
adding: images/monkey.jpg
adding: images/at_work.gif

C:\Java> dir 
12/09/96  12:11a        <DIR>          .
12/09/96  12:17a        <DIR>          ..
12/09/96  12:11a               207,360 bundle.jar
12/03/96  06:54p        <DIR>          audio
12/06/96  02:02p        <DIR>          images
12/09/96  12:10a        <DIR>          classes
               6 File(s)        207,360 bytes

Чтобы видеть имена записи в jarfile, используйте "t" опцию:

C:\Java> jar tf bundle.jar
META-INF/
META-INF/MANIFEST.MF
audio/1.au
audio/2.au
audio/3.au
audio/spacemusic.au
classes/Animator.class
classes/Wave.class
images/monkey.jpg
images/at_work.gif

Чтобы добавить индексный файл к файлу фляги для того, чтобы ускорить загрузку класса, используйте-i опцию.

Скажем, Вы разделяете взаимозависимые классы для торгового приложения запаса в три файла фляги:  main.jar, buy.jar, и sell.jar. Если Вы определяете атрибут Пути к классу в декларации main.jar как:
Class-Path: buy.jar sell.jar
тогда можно использовать-i опцию, чтобы ускорить время загрузки класса Вашего приложения:
C:\Java> jar i main.jar
INDEX.LIST файл вставляется в META-INF каталог, который позволит загрузчику класса приложений загрузить указанные файлы фляги, когда это будет искать классы или ресурсы.

СМ. ТАКЖЕ

Краткий обзор Фляги
Спецификация Файла Фляги
Спецификация JarIndex
Учебное руководство по фляге на веб-сайте программного обеспечения Java.
Ссылочная Страница pack200

Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами