aspose.info
UK

JAR - формат архівного файлу Java

Оновлено

Що таке файл 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 наступним чином.

файл-маніфесту: новий рядок основного розділу *окремий розділ

main-section: інформація про версію новий рядок *основний-атрибут

version-info: маніфест-версія: номер версії

номер-версії : цифра+{.цифра+}*

main-attribute: (будь-який допустимий головний атрибут) новий рядок

individual-section: Ім’я: значення нового рядка *perentry-attribute

perentry-attribute: (будь-який законний атрибут perentry) новий рядок

новий рядок : CR LF | LF | CR (без LF)

digit: {0-9}

Виконуваний JAR

Файли JAR також можуть містити програму, яка може бути виконана віртуальною машиною Java (JVM), подібною до будь-якої іншої програми в операційній системі Microsoft Windows. У цьому випадку JVM має знати про точку входу програми, яка є будь-яким класом із загальнодоступним статичним методом void main. Файл маніфесту ідентифікує такий клас із заголовком Main-Class у такому форматі:

Main-Class: com.example.MyClassName

Список літератури

Див. також