Perbezaan Antara Pembungkusan JAR dan WAR

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kita akan memfokuskan pada perbezaan antara pembungkusan JAR dan WAR di Jawa.

Pertama, kami akan menentukan setiap pilihan pembungkusan secara berasingan. Selepas itu, kami akan merumuskan perbezaan mereka.

2. Pembungkusan JAR

Ringkasnya, JAR - atau Java Archive - adalah format fail pakej. Fail JAR mempunyai pelanjutan .jar dan mungkin mengandungi perpustakaan, sumber daya, dan fail metadata.

Pada asasnya, ia adalah fail zip yang mengandungi versi fail dan sumber yang terkompresi dari perpustakaan dan aplikasi Java yang disusun.

Contohnya, berikut adalah struktur fail JAR yang mudah:

META-INF/ MANIFEST.MF com/ baeldung/ MyApplication.class 

The META-INF / MANIFEST.MF fail mungkin mengandungi metadata tambahan mengenai fail yang disimpan di dalam arkib.

Kita boleh membuat fail JAR menggunakan perintah jar atau dengan alat seperti Maven.

3. Pembungkusan PERANG

WAR bermaksud Arkib Aplikasi Web atau Sumber Aplikasi Web. Fail arkib ini mempunyai peluasan .war dan digunakan untuk mengemas aplikasi web yang dapat kami gunakan pada wadah Servlet / JSP mana pun.

Berikut adalah susun atur contoh struktur fail WAR yang biasa:

META-INF/ MANIFEST.MF WEB-INF/ web.xml jsp/ helloWorld.jsp classes/ static/ templates/ application.properties lib/ // *.jar files as libs

Di dalamnya, ia mempunyai direktori META-INF yang menyimpan maklumat berguna di MANIFEST.MF mengenai arkib web. Direktori META-INF adalah peribadi dan tidak dapat diakses dari luar.

Di sisi lain, ini juga berisi direktori awam WEB-INF dengan semua sumber web statik, termasuk halaman HTML, gambar, dan file JS. Lebih-lebih lagi, ia mengandungi fail web.xml , kelas servlet, dan perpustakaan.

Kita boleh menggunakan alat dan perintah yang sama seperti yang kita gunakan untuk membina JAR untuk membina arkib .war .

4. Perbezaan Utama

Jadi, apakah perbezaan utama antara kedua-dua jenis arkib ini?

Perbezaan pertama dan paling jelas adalah peluasan fail . JAR mempunyai pelanjutan .jar , sedangkan fail WAR mempunyai pelanjutan .war .

Perbezaan utama kedua adalah tujuan mereka dan cara mereka berfungsi . Fail JAR membolehkan kami mengemas banyak fail untuk menggunakannya sebagai perpustakaan, pemalam, atau jenis aplikasi apa pun. Sebaliknya, fail WAR hanya digunakan untuk aplikasi web.

Struktur arkib juga berbeza. Kita boleh membuat JAR dengan struktur yang dikehendaki. Sebaliknya, WAR mempunyai struktur yang telah ditetapkan dengan direktori WEB-INF dan META-INF .

Akhirnya, kita dapat menjalankan JAR dari baris perintah jika kita membinanya sebagai JAR yang boleh dilaksanakan tanpa menggunakan perisian tambahan. Atau, kita boleh menggunakannya sebagai perpustakaan. Sebaliknya, kita memerlukan pelayan untuk melaksanakan WAR .

5. Kesimpulan

Dalam artikel ringkas ini, kami membandingkan jenis pembungkusan Java .jar dan .war . Dengan berbuat demikian, kami juga menyatakan bahawa walaupun kedua-duanya menggunakan format fail ZIP yang sama, terdapat beberapa perbezaan penting.