Читать «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, затем перечисляются имена файлов, которые надо занести в архив или извлечь из архива. Если это имена каталогов, то операция выполняется рекурсивно со всеми файлами каталога.