.JAR вариант №
Файл с расширением .jar представляет собой файл архива Java, который содержит множество различных файлов, связанных с приложениями, в виде одного файла. Этот формат файла был создан, чтобы уменьшить скорость загрузки загруженного Java-апплета в браузере через HTTP-транзакцию, избегая создания нескольких HTTP-соединений. Один файл JAR может содержать файлы классов Java (.class), изображения и звуки. Отдельные элементы внутри JAR-файла могут быть подписаны разработчиком приложения цифровой подписью для аутентификации их происхождения. Файлы JAR регулярно используются для создания функциональных API, которые содержат определенные функции, связанные с этим API.
Формат JAR-файла
Файлы JAR основаны на популярном формате ZIP-файлов, который архивирует отдельные файлы содержимого в одном файле. Формат файла JAR поддерживает сжатие, что приводит к уменьшению размера файла для загрузки и, следовательно, к дальнейшему сокращению времени загрузки. Спецификации файлов JAR в статье Oracle дает полную информацию о внутренних спецификациях файлов JAR.
Файл манифеста
При создании JAR-файла внутри него автоматически создается файл манифеста, который содержит метаданные о содержимом JAR-файла. Этот файл показывает содержимое, упакованное внутри файла JAR. Типичный файл манифеста выглядит следующим образом, в котором показаны папки и классы, включенные в файл JAR.
META-INF/
META-INF/MANIFEST.MF
pack/
pack/class1.class
pack/class2.class
..
..
Спецификации манифеста
Спецификации манифеста определяются Oracle следующим образом.
manifest-file
: новая строка основного раздела *отдельный раздел
main-section
: новая строка информации о версии *основной-атрибут
информация о версии
: Версия манифеста: номер версии
номер версии
: цифра+{.цифра+}*
main-attribute
: (любой законный основной атрибут) новая строка
индивидуальный раздел
: Имя: значение новой строки *perentry-attribute
perentry-attribute
: (любой допустимый атрибут perentry) новая строка
новая строка
: CR LF | НЧ | CR (не следует LF)
digit
: {0-9}
Исполняемый JAR-файл
Файлы JAR также могут содержать приложение, которое может выполняться виртуальной машиной Java (JVM), аналогично любому другому приложению в операционной системе Microsoft Windows. В этом случае JVM необходимо знать о точке входа приложения, которая является любым классом с общедоступным основным методом static void. Файл манифеста идентифицирует такой класс с заголовком «Main-Class» в следующем формате:
Main-Class: com.example.MyClassName