|
Spec-Zone .ru
спецификации, руководства, описания, API
|
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опция]где:
cuxtiv0Mmfjar команда.c), обновленный (u), извлеченный (x), или имейте его просматриваемое оглавление (t).-f опция и имя файла jarfile являются парой - если любой присутствует, они должны оба появиться. Отметьте, что исключение-f и jarfile принимает файл фляги от стандартного ввода (для x и t) или отправляет файл фляги стандартному выводу (для c и u).MANIFEST.MF в файле фляги.-m опция и декларация имени файла являются парой - если любой присутствует, они должны оба появиться. Буквы м. и f должны появиться в том же самом порядке, которые проявляют и jarfile, появляются.-C dir-JопцияТипичное использование, чтобы объединить файлы в файл фляги:
C:\Java> jar cf myFile.jar *.classВ этом примере все файлы class в текущем каталоге помещаются в файл, названный "myFile.jar". Запись файла манифеста под названием META-INF/MANIFEST.MF автоматически сгенерирована инструментом фляги и всегда является первой записью в файле фляги. Файл манифеста является местом, где любая метаинформация об архиве сохранена как имя: пары значения. Обратитесь к спецификации файла JAR для деталей о том, как метаинформация сохранена в файле манифеста.
Если у Вас есть существующий ранее файл манифеста чье имя: пары значения, которых Вы хотите, чтобы инструмент фляги включал для нового архива фляги, можно определить это использующий-m опцию:
C:\Java> jar cmf myManifestFile myFile.jar *.classСуществующий файл манифеста должен закончиться новым знаком строки. фляга не анализирует последнюю строку файла манифеста, если это не заканчивается новым знаком строки.
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, который позволяет приложению загрузчики class, чтобы загрузить классы более эффективно из файлов фляги. Если приложение или апплет будут связаны в многократные файлы фляги, то только необходимые файлы фляги будут загружены и открыты, чтобы загрузить классы. Эта оптимизация производительности включается, выполняя jar с-i опцией. Это генерирует информацию о расположении пакета для указанного основного файла фляги и всех файлов фляги, от которых это зависит, который должен быть определен в атрибуте Class-Path основной декларации файла фляги.
C:\Java> jar i main.jar
В этом примере файл INDEX.LIST вставляется в каталог META-INF main.jar.
Приложение загрузчик class будет использовать информацию, хранившую в этом файле для эффективной загрузки class. Обратитесь к спецификации JarIndex для деталей о том, как информация расположения хранится в индексном файле.
Стандартный способ скопировать каталоги состоит в том, чтобы сначала сжать файлы в dir1 к стандарту, затем извлечь из стандарта в к dir2 (исключение f от обоих jar команды):
C:\Java> (cd dir1; jar c .) | (cd dir2; jar x)
Примеры использования инструмента фляги, чтобы работать на файлах фляги и декларациях файла фляги обеспечиваются ниже и в следе Фляги .
f определяется) или к стандартному выводу (если f и jarfile опускаются). Добавьте к этому файлы и каталоги, определенные inputfiles.f определяется), добавляя к этому файлы и каталоги, определенные inputfiles. Например: jar uf foo.jar foo.classдобавляет файл foo.class к существующему файлу фляги foo.jar.-u опция может также обновить явную запись, как дано этим примером:
jar umf manifest foo.jarобновляет декларацию foo.jar с именем
: пары значения в manifest.f определяется) или стандартный ввод (если f и jarfile опускаются). Если inputfiles определяется, только те указанные файлы и каталоги извлекаются. Иначе, все файлы и каталоги извлекаются. Время и дата извлеченных файлов - данные в архиве.f определяется) или стандартный ввод (если f и jarfile опускаются). Если inputfiles определяется, только те указанные файлы и каталоги перечисляются. Иначе, все файлы и каталоги перечисляются.jar i foo.jar
генерирует INDEX.LIST файл в foo.jar который содержит информацию о расположении для каждого пакета в foo.jar и все файлы фляги, определенные в Class-Path атрибут foo.jar. См. индексировать пример.
c), обновленный (u), извлеченный (x), индексированный (i), или просматриваемый (t).-f опция и имя файла jarfile являются парой - если существующий, они должны оба появиться. Исключение f и jarfile принимает "файл фляги" от стандартного ввода (для x и t) или отправляет "файл фляги" стандартному выводу (для c и u).: оцените пар атрибута от указанной декларации файла манифеста в файле в META-INF/MANIFEST.MF. Имя: пара значения добавляется, если каждый уже не существует с тем же самым именем, когда его значение обновляется. На командной строке буквы м. и f должны появиться в том же самом порядке, которые проявляют, и jarfile появляются. Использование в качестве примера:
jar cmf myManifestFile myFile.jar *.classМожно добавить имя специального назначения: оцените пар атрибута декларации, которые не содержатся в декларации значения по умолчанию. Например, можно добавить атрибуты, определяющие информацию о поставщике, информацию о версии, изоляцию пакета, или сделать связанную JAR исполнимую программу приложений. См., что запаздывают в Учебном руководстве по Java для примеров использования-m опции.
Main.jar где значение атрибута Основного класса в декларации устанавливается в Main: jar cfe Main.jar Main Main.class
Среда выполнения Java может непосредственно вызвать это приложение, выполняя следующую команду:
java -jar Main.jarЕсли entrypoint имя class находится в пакете, оно может использовать любого точка (". ") или наклонная черта (" / ") символ как разделитель. Например, если
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 спецификация, приводя к ошибке и работе создания или обновления фляги прерывается.
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опция-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
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
Чтобы добавить индексный файл к файлу фляги для того, чтобы ускорить загрузку class, используйте-i опцию.
Скажем, Вы разделяете взаимозависимые классы для торгового приложения запаса в три файла фляги: main.jar, buy.jar, и sell.jar. Если Вы определяете атрибут Пути к классу в декларации main.jar как:Class-Path: buy.jar sell.jarтогда можно использовать-i опцию, чтобы ускорить время загрузки class Вашего приложения:
C:\Java> jar i main.jar
INDEX.LIST файл вставляется к META-INF каталог, который позволит приложению загрузчик class загрузить указанные файлы фляги, когда это будет искать классы или ресурсы.