Apa itu file JAR?
File dengan ekstensi .jar adalah file Arsip Java yang berisi banyak file terkait aplikasi yang berbeda sebagai satu file. Format file ini dibuat untuk mengurangi kecepatan memuat Java Applet yang diunduh di browser melalui transaksi HTTP, dengan menghindari pembuatan banyak koneksi HTTP. File JAR tunggal dapat berisi file kelas Java (.class), images, dan sounds. Item individual di dalam file JAR dapat ditandatangani secara digital oleh pengembang aplikasi untuk mengautentikasi asalnya. File JAR secara teratur digunakan untuk membuat API fungsional yang berisi fungsionalitas khusus yang terkait dengan API tersebut.
Format File .JAR
File JAR didasarkan pada format file ZIP populer yang mengarsipkan file konten individualnya dalam satu file. Format file JAR mendukung kompresi, menghasilkan ukuran file yang lebih kecil untuk diunduh dan karenanya semakin meningkatkan waktu pengunduhan. Artikel spesifikasi file JAR oleh Oracle memberikan detail lengkap tentang spesifikasi internal file JAR.
Berkas Manifes
Saat file JAR dibuat, file manifes secara otomatis dibuat di dalamnya yang berisi informasi metadata tentang konten file JAR. File ini menampilkan konten yang dikemas di dalam file JAR. File Manifest tipikal terlihat sebagai berikut yang menunjukkan folder dan kelas yang disertakan dalam file JAR.
META-INF/
META-INF/MANIFEST.MF
pack/
pack/class1.class
pack/class2.class
..
..
Spesifikasi Manifes
Spesifikasi manifes didefinisikan oleh Oracle sebagai berikut.
file manifes
: baris baru bagian utama *bagian-individu
bagian-utama
: info-versi baris baru *atribut-utama
version-info
: Manifest-Version : nomor-versi
nomor versi
: digit+{.digit+}*
main-attribute
: (semua atribut utama yang sah) baris baru
individual-section
: Name : value newline *perentry-attribute
perentry-attribute
: (atribut perentry yang sah) baris baru
baris baru
: CR LF | JIKA | CR (tidak diikuti oleh LF)
digit
: {0-9}
JAR yang dapat dijalankan
File JAR juga dapat terdiri dari aplikasi yang dapat dijalankan oleh Java Virtual Machine (JVM) yang mirip dengan aplikasi lain di Sistem Operasi Microsoft Windows. Dalam hal ini, JVM perlu mengetahui tentang titik masuk aplikasi yaitu kelas apa pun dengan metode utama public static void. File manifes mengidentifikasi kelas tersebut dengan header Main-Class
dalam format berikut:
Main-Class: com.example.MyClassName