Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 397

Ильдар Шаукатович Хабибуллин

Архивные файлы удобно использовать и в приложениях (applications). Все файлы приложения упаковываются в архив, например appljar. Приложение выполняется прямо из архива, интерпретатор запускается с параметром jar, например:

java -jar appl.jar

Имя основного класса приложения, содержащего метод main(), указывается в файле MANIFEST.MF, речь о котором пойдет чуть позже.

При установке JDK на MS Windows автоматически создается ассоциация расширения имени файла jar с интерпретатором javaw, которая действует при двойном щелчке мыши по имени файла, а именно:

"C:\jre1.6.0 02\bin\javaw.exe" -jar "%1" %*

Если такой ассоциации нет, то ее легко создать средствами Windows.

Архивные файлы удобны и просты для компактного хранения всей необходимой для работы программы информации. Программа может работать с файлами архива прямо из архива, не распаковывая их, с помощью классов пакета java.util.jar.

Создание архива

Jar-архивы создаются с помощью классов пакета java.util.jar или посредством утилиты командной строки jar.

Правила использования утилиты jar очень похожи на правила применения утилиты tar. Набрав в командной строке слово jar и нажав клавишу <Enter>, вы получите краткое пояснение, подобное тому, что показано на рис. 25.1.

Рис. 25.1. Правила употребления утилиты jar

Параметры утилиты jar меняются от версии к версии, на время написания книги они выглядели так:

jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files...

В этой строке зашифрованы правила применения утилиты. Фигурные скобки показывают, что после слова jar и пробела надо написать одну из букв: c, t, x, u или i. Эти буквы означают следующие операции:

□ c (create) — создать новый архив;

□ t (table of contents) — направить в стандартный вывод список содержимого архива;

□ x (extract) — извлечь из архива один или несколько файлов;

□ u (update) — обновить архив, заменив или добавив один или несколько файлов.

После буквы, без пробела, можно написать одну или несколько букв, перечисленных в квадратных скобках. Они означают следующее:

□ v (verbose) — выводить сообщения о процессе работы с архивом в стандартный вывод;

□ f (file) — записанный далее параметр jar-file показывает имя архивного файла;

□ m (manifest) — записанный далее параметр manifest-file показывает имя файла описания;

□ 0 (нуль) — не сжимать файлы, записывая их в архив;

□ m (manifest) — не создавать файл описания;

□ e (entry) — используется при создании архива. Записанный далее параметр entry-point означает имя основного класса, содержащего метод main(), с которого начинается выполнение программы. Это имя будет занесено в создаваемый файл MANIFEST.MF (см. далее).

Параметр -i (index) предписывает создать в архиве файл INDEX.LIST. Он используется уже после формирования архивного файла.

После буквенных параметров-файлов через пробел записывается имя архивного файла jar-file, потом, через пробел, имя файла описания manifest-file, далее, после пробела, имя основного класса entry-point, затем перечисляются имена файлов, которые надо занести в архив или извлечь из архива. Если это имена каталогов, то операция выполняется рекурсивно со всеми файлами каталога.