Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание и использование архивов Java.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
82.94 Кб
Скачать

Создание и использование архивов Java

Зачем нужны JAR-архивы?

Использование JAR-архивов предоставляет разработчикам аплетов (а также и автономных приложений) ряд преимуществ.

  • Повышение эффективности загрузки. Вместо нескольких файлов отдельных классов загружается единственный файл JAR-архива.

  • Улучшенное хранилище файлов, так как файлы классов хранятся в одном сжатом файле архива.

  • Повышение защищённости. В JAR-файл можно поместить цифровую подпись, дающею конечному пользователю гарантии, что файл архива не изменился с момента её внесения. Если конечный пользователь доверяет вашей фирме, он может предоставить подписанным вами аплетам право доступа к его жестким дискам или другим важным ресурсам системы.

  • Независимость от платформы. Построение JAR-архивов базируется на использовании популярной программы PKZIP сжатия файлов. Однако JAR-файлы могут создаваться и сохраняться на любой компьютерной платформе.

  • Расширяемость. В спецификацию JAR-файлов внесены некоторые дополнения, обеспечивающие возможность дальнейших расширений.

Одно только повышение эффективности загрузки даёт какое преимущество! Если вы знакомы с работой протокола HTTP, то должны понимать насколько неэффективно, с его помощью, выполнять передачу нескольких небольших файлов. В каждом случае потребуется установить новое соединение TCP/IP, которое после передачи данного файла будет разорвано. Установка каждого соединения связана с дополнительной нагрузкой на сервер и сеть. При использовании коммутируемых линий связи среднее время установки TCP/IP-соединения может составлять около 0,5 c. Если для работы аплета необходимо 16 файлов, общее время затрачиваемое только на установку соединений - 8 с.

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

Для создания и модификации JAR-архивов можно использовать любую поддерживающую формат PKZIP программу. JAR-файл отличается от zip-файла наличием дополнительного текстового файла, называемого файлом описания (manifest file). Этот файл содержит сведения обо всех помещённых в данный архив файлах. В состав файла описания должны входить определённые элементы, в частности он должен включать следующие.

  • Номер версии стандарта JAR. В соответствии, с которым построен данный архив. Этот номер задаётся параметром Manifest-Version и является обязательным. В SDK 1.2 значение этого параметра должно быть равно 1.0

  • Минимальный номер версии утилиты JAR, которая сможет прочитать этот архив. Этот параметр необязателен и имеет название Required-Version.

  • Отдельная запись для любого, помещённого в архив файла. Необязательно перечислять все помещённые в архив файлы, достаточно указать только файлы главных классов.

Фирма Sun предоставила, для создания JAR архивов, специализированный инструмент для всех поддерживаемых платформ. Рассмотрим создание JAR-архива с помощью этой утилиты под названием jar.

Предположим, что у нас имеется каталог, содержащий несколько файлов типа .class и подкаталог с именем images содержащий несколько файлов типа .gif. Пусть имя создаваемого архива будет archive.jar

Общий формат команды вызова утилиты jar: jar параметры имена_файлов

Параметр имена_файлов представляет собой список имён файлов, первым в котором всегда указывается имя самого архивного файла. Назначение остальных имён файлов зависит от ключей:

c

- создать новый архив.

m

- использовать внешний файл описания, имя которого указано вторым в списке имена_файлов.

M

- не создавать файл описания.

t

- вывести содержание указанного архивного.

x

- извлечь файлы, указанные в списке имена_файлов. Если имена не указаны, то извлечь все файлы.

f

- указывает, что имя архивного файла помещено первым в списке имена_файлов.

v

- указывает, что утилита должна сопровождать сообщениями выполнение всех действий, заданных другими параметрами.

0

- сохранение файлов в архиве выполняется без их сжатия.

u

- указывает, что нужно обновить указанные файлы. Или в случае команды jar umf manifest имя_архива указывает что нужно обновить информацию в файле описания.

-i

- указывает, что необходимо сгенерировать файл INDEX.LIST содержащий информацию о всех файлах архива.

И так для создания нового архива введите: jar cf archive.jar .class images/.gif

Помещение в jar-архив цифровой подписи

Для того чтобы разобраться, как цифровая подпись помещается в JAR-архив, необходимо предварительно усвоить определённые базовые понятия из области криптографии - шифрование с помощью открытого ключа.

Для внесения цифровой подписи в JAR-архив необходимо иметь два инструмента.

  • Утилита keytool. Используется для генерации пары открытого и закрытого ключа и сертификата.

  • Утилита jarsigner. Используется для непосредственного помещения цифровой подписи в JAR-архивы с применением имеющегося сертификата.

Что нам понадобится:

  1. Выполнить генерацию пары ключей.

  2. Получить сертификат на эту пару.

  3. Использовать сертификат для помещения цифровой подписи в JAR-архив.