Какво е JAR файл?
Файл с разширение .jar е архивен файл на Java, който съдържа много различни файлове, свързани с приложения, като един файл. Този файлов формат е създаден, за да се намали скоростта на зареждане на изтеглен Java аплет в браузър чрез HTTP транзакция, като се избягва създаването на множество HTTP връзки. Един JAR файл може да съдържа файлове с Java клас (.class), images и sounds. Индивидуалните елементи в 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
: информация за версията нов ред *основен-атрибут
информация за версията
: Версия на манифеста: номер на версията
номер-на-версия
: цифра+{.цифра+}*
main-attribute
: (всеки легитимен главен атрибут) нов ред
индивидуална секция
: Име: стойност нов ред *perentry-атрибут
perentry-attribute
: (всеки легитимен perentry атрибут) нов ред
нов ред
: CR LF | LF | CR (не следван от LF)
digit
: {0-9}
Изпълним JAR
JAR файловете могат също така да включват приложение, което може да се изпълнява от Java Virtual Machine (JVM), подобно на всяко друго приложение в операционната система Microsoft Windows. В този случай JVM трябва да знае за входната точка на приложението, която е всеки клас с публичен статичен void основен метод. Файлът на манифеста идентифицира такъв клас със заглавка Main-Class
в следния формат:
Main-Class: com.example.MyClassName