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
опция]
где:
cuxtiv0Mmf
jar
команда.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В этом примере все файлы класса в текущем каталоге помещаются в файл, названный "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, который позволяет загрузчикам класса приложений загружать классы более эффективно из файлов фляги. Если приложение или апплет будут связаны в многократные файлы фляги, то только необходимые файлы фляги будут загружены и открыты, чтобы загрузить классы. Эта оптимизация производительности включается, выполняя 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)
Примеры использования инструмента фляги, чтобы работать на файлах фляги и декларациях файла фляги обеспечиваются ниже и в следе Фляги
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 исполнимую программу приложений. См., что
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
спецификация, приводя к ошибке и работе создания или обновления фляги прерывается.
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
Чтобы добавить индексный файл к файлу фляги для того, чтобы ускорить загрузку класса, используйте-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
каталог, который позволит загрузчику класса приложений загрузить указанные файлы фляги, когда это будет искать классы или ресурсы.