Perbedaan antara guci dan perang di Jawa

462

Apa perbedaan antara a .jardan a.war file ?
Apakah hanya ekstensi file atau ada sesuatu yang lebih?

metode helpermet
sumber

Jawaban:

388

Dari Java Tips: Perbedaan antara guci telinga dan file perang :

File-file ini hanya file zip menggunakan alat jar java. File-file ini dibuat untuk tujuan yang berbeda. Berikut adalah deskripsi file-file ini:

  • File .jar: File .jar berisi pustaka, sumber daya, dan file aksesori seperti file properti.

  • File .war: File perang berisi aplikasi web yang dapat digunakan pada wadah servlet / jsp. File .war berisi jsp, html, javascript, dan file lain yang diperlukan untuk pengembangan aplikasi web.


Deskripsi resmi Sun / Oracle:


Artikel Wikipedia:

aioobe
sumber
10
Saya memiliki keraguan sebagai file aplikasi web jsp dan tambahan mengapa tidak bisa di file jar.
Emmanuel Angelo.R
@ EmmanuelAngelo.R Mereka bisa - file jar hanya file zip. Jika itu akan melakukan sesuatu yang bermanfaat adalah masalah lain, yang tergantung pada kode yang ingin Anda gunakan file jar. Sebagai contoh menarik server Jenkins Continuous Integration didistribusikan sebagai file WAR, yang dapat dijalankan dengan "java -jar". Lihat wiki.jenkins-ci.org/display/JENKINS/… untuk detailnya.
Thorbjørn Ravn Andersen
77

Suatu .warfile memiliki struktur spesifik dalam hal di mana file-file tertentu akan berada. Selain itu, ya, hanya a .jar.

TJ Crowder
sumber
40

Anda menambahkan komponen web ke aplikasi J2EE dalam paket yang disebut arsip aplikasi web (PERANG), yang merupakan JAR mirip dengan paket yang digunakan untuk perpustakaan kelas Java. PERANG biasanya berisi sumber daya lain selain komponen web, termasuk:

  • Kelas utilitas sisi server (basis data, keranjang belanja, dan sebagainya).
  • Sumber daya web statis (HTML, gambar, dan file suara, dan sebagainya)
  • Kelas sisi klien (kelas applet dan utilitas)

PERANG memiliki struktur direktori hierarki spesifik. Direktori tingkat atas dari WAR adalah akar dokumen aplikasi. Root dokumen adalah tempat halaman JSP, kelas dan arsip sisi klien, dan sumber daya web statis disimpan.

( sumber )

Jadi .war adalah .jar, tetapi berisi komponen aplikasi web dan ditata sesuai dengan struktur tertentu. .War dirancang untuk digunakan ke server aplikasi web seperti Tomcat atau Jetty atau server Java EE seperti JBoss atau Glassfish.

justkt
sumber
1
Jadi apakah ini berarti jika Anda membuat aplikasi server yang hanya menggunakan soket dan tidak memiliki UI, tidak perlu mengemasnya sebagai file perang?
bot_bot
Sebenarnya sekarang saya membaca sedikit lebih banyak Saya tidak perlu Tomcat, saya hanya bisa mengekspor toples ke server dan menjalankannya langsung dari sana.
bot_bot
40

PERANG adalah singkatan dari ARchive aplikasi Web

JAR adalah singkatan dari Java ARchive

masukkan deskripsi gambar di sini

Joby Wilson Mathews
sumber
dan EAR adalah aplikasi Enterprise ARchive?
Funder
15

Sebuah .warfile adalah Aplikasi Arsip Web yang berjalan di dalam server aplikasi sementara .jaradalah Java Application Arsip yang menjalankan aplikasi desktop pada komputer pengguna.

Justin Niessner
sumber
14
Pernyataan kedua belum tentu benar. Sebuah toples juga dapat memulai server web tertanam, mis. Dengan Spring Boot.
whirlwin
4
bahkan pernyataan itu tidak sepenuhnya benar. Toples juga bisa menjadi perpustakaan kode untuk digunakan oleh aplikasi lain. Dengan kata lain bahkan mungkin tidak mengandung kelas utama untuk menjalankan.
Kevin Welker
@KevinWelker setuju. Bahkan pada tahun 2011 (ketika posting ini ditulis) toples masih bisa hanya mewakili perpustakaan. Namun, pegas boot tidak ada sehingga saya bisa melihat mengabaikan fakta bahwa Anda dapat menanamkan server web dalam toples seperti angin puyuh yang disebutkan.
intrepistar_88
@Kevin Welker, bukan "tidak sepenuhnya", saya akan mengatakan "tidak semua kebenaran" seperti whirlwin yang hanya menyebutkan pengecualian, yang sepenuhnya benar, bukan?
Alexei Martianov
12

File perang adalah file jar khusus yang digunakan untuk mengemas aplikasi web agar mudah digunakan di server aplikasi. Konten file perang harus mengikuti struktur yang ditentukan.

Vincent Ramdhanie
sumber
10

.jar dan .war keduanya adalah file arsip zip. Keduanya dapat memiliki file manifes META-INF / MANIFEST.MF opsional yang menyimpan informasi informatif seperti versi, dan atribut instruksional seperti classpath dan kelas utama untuk JVM yang akan menjalankannya.

File .war - Arsip Aplikasi Web yang dimaksudkan untuk dieksekusi di dalam 'Servlet Container' dan mungkin termasuk file jar lainnya (di direktori WEB-INF / lib) mengkompilasi kelas (di WEB-INF / kelas (servlet juga ada di sana)) .jsp file gambar, file dll. Semua konten PERANG yang ada di sana untuk membuat modul mandiri.

Haim Sulam
sumber
5

Pada dasarnya kedua arsip terkompresi. war digunakan untuk aplikasi web dengan struktur direktori tertentu.

fmucar
sumber
4

war and jar adalah arsip untuk file java. perang adalah arsip web dan mereka berjalan di server web. jar adalah arsip java.

nyanev
sumber
1

Perang -

mendistribusikan aplikasi web berbasis Java. PERANG memiliki struktur file yang sama dengan file JAR, yang merupakan file terkompresi tunggal yang berisi beberapa file yang dibundel di dalamnya.

Guci -

File .jar berisi perpustakaan, sumber daya dan file aksesori seperti file properti.

File WAR digunakan untuk menggabungkan JSP, servlet, file kelas Java, file XML, pustaka javascript, pustaka JAR, halaman web statis, dan sumber daya lainnya yang diperlukan untuk menjalankan aplikasi.

Akitha_MJ
sumber
0

Guci : - guci berisi perang kelas saja : - perang mengandung html, js, css dan .class juga halaman jsp dan servlets

Thermal IT
sumber
0

File JAR memungkinkan paket beberapa file untuk menggunakannya sebagai pustaka, plugin, atau aplikasi apa pun. Di sisi lain, file WAR hanya digunakan untuk aplikasi web.

JAR dapat dibuat dengan struktur yang diinginkan. Sebaliknya, WAR memiliki struktur yang telah ditentukan dengan direktori WEB-INF dan META-INF.

File JAR memungkinkan Java Runtime Environment (JRE) untuk menggunakan seluruh aplikasi termasuk kelas dan sumber daya terkait dalam satu permintaan. Di sisi lain, file WAR memungkinkan pengujian dan penggunaan aplikasi web dengan mudah.

Abdul Alim Shakir
sumber
0

Ekstensi file JAR adalah .jar dan dibuat dengan perintah jar dari command prompt (seperti perintah javac dijalankan). Secara umum, file JAR berisi sumber daya terkait Java seperti perpustakaan, kelas dll. File JAR seperti file winzip kecuali bahwa file Jar adalah platform independen.

File WAR hanyalah file JAR tetapi hanya berisi file Java yang berhubungan dengan Web seperti Servlets, JSP, HTML.

Untuk menjalankan file PERANG, server Web atau wadah Web diperlukan, misalnya, Tomcat atau Weblogic atau Websphere. Untuk menjalankan file JAR, JDK sederhana sudah cukup.

Animesh Jaiswal
sumber