Differenza tra vaso e guerra in Java


462

Qual è la differenza tra un .jare un .warfile?
È solo l'estensione del file o c'è qualcosa di più?

Risposte:


388

Da Java Suggerimenti: Differenza tra ear jar e file war :

Questi file sono semplicemente file compressi con lo strumento java jar. Questi file sono creati per scopi diversi. Ecco la descrizione di questi file:

  • File .jar: i file .jar contengono file di librerie, risorse e accessori come i file delle proprietà.

  • File .war: il file war contiene l'applicazione Web che può essere distribuita su qualsiasi contenitore servlet / jsp. Il file .war contiene jsp, html, javascript e altri file necessari per lo sviluppo di applicazioni web.


Descrizioni ufficiali Sun / Oracle:


Articoli di Wikipedia:


10
Sto avendo dei dubbi come jsp e file di applicazioni web aggiuntivi perché non posso essere nel file jar.
Emmanuel Angelo.R

@ EmmanuelAngelo.R Possono: un file jar è solo un file zip. Se farà qualcosa di utile è un'altra cosa, che dipende dal codice che si desidera utilizzare il file jar. A titolo di esempio interessante, il server Jenkins Continuous Integration è distribuito come file WAR, che può essere eseguito con "java -jar". Vedi wiki.jenkins-ci.org/display/JENKINS/… per i dettagli.
Thorbjørn Ravn Andersen,

77

Un .warfile ha una struttura specifica in termini di dove saranno determinati file. A parte questo, sì, è solo un .jar.


40

È possibile aggiungere componenti Web a un'applicazione J2EE in un pacchetto chiamato un archivio di applicazioni Web (WAR), che è un JAR simile al pacchetto utilizzato per le librerie di classi Java. Una WAR di solito contiene altre risorse oltre ai componenti web, tra cui:

  • Classi di utilità lato server (bean di database, carrelli della spesa e così via).
  • Risorse Web statiche (file HTML, immagine e audio e così via)
  • Classi lato client (applet e classi di utilità)

Una GUERRA ha una struttura di directory gerarchica specifica. La directory di livello superiore di un WAR è la radice del documento dell'applicazione. La radice del documento è dove sono archiviate le pagine JSP, le classi e gli archivi lato client e le risorse web statiche.

( fonte )

Quindi un .war è un .jar, ma contiene componenti di applicazioni web ed è strutturato secondo una struttura specifica. Un .war è progettato per essere distribuito su un server di applicazioni Web come Tomcat o Jetty o un server Java EE come JBoss o Glassfish.


1
Quindi questo significa che se stai creando un'app server che utilizza solo socket e non ha alcuna interfaccia utente, non è necessario impacchettarla come file di guerra?
bot_bot

In realtà ora sto leggendo un po 'di più Non ho bisogno di Tomcat, posso semplicemente esportare il jar sul server ed eseguirlo direttamente da lì.
bot_bot


15

Un .warfile è un archivio di applicazioni Web che viene eseguito all'interno di un server delle applicazioni mentre un .jararchivio di applicazioni Java esegue un'applicazione desktop sul computer di un utente.


14
La seconda affermazione non è necessariamente vera. Un vaso può anche avviare un server Web incorporato, ad esempio con Spring Boot.
Whirlwin,

4
anche quella affermazione non è del tutto vera. Un jar può anche essere solo una libreria di codice che può essere utilizzata da altre applicazioni. In altre parole, potrebbe non contenere nemmeno una classe principale per l'esecuzione.
Kevin Welker,

@KevinWelker concordato. Anche nel 2011 (quando è stato scritto questo post) un barattolo potrebbe ancora rappresentare una biblioteca. Tuttavia, l'avvio di primavera non era in circolazione, quindi posso vedere trascurando il fatto che puoi incorporare un server Web in un barattolo come il turbine descritto.
intrepistar_88,

@Kevin Welker, non "non del tutto", direi "non tutta la verità" dato che Whirlwin ha appena menzionato un'eccezione, che è del tutto vera, non è vero?
Alexei Martianov,

12

Un file di guerra è un file jar speciale che viene utilizzato per impacchettare un'applicazione Web per semplificare la distribuzione su un server delle applicazioni. Il contenuto del file di guerra deve seguire una struttura definita.


10

.jar e .war sono entrambi file archiviati zippati. Entrambi possono avere il file manifest META-INF / MANIFEST.MF opzionale che contiene informazioni informative come il versioning e attributi didattici come classpath e main-class per la JVM che lo eseguirà.

File .war - Archivio applicazioni Web destinato ad essere eseguito all'interno di un "Contenitore servlet" e può includere altri file jar (nella directory WEB-INF / lib) classi compilate (in WEB-INF / classi (anche il servlet va lì)) .jsp file immagini, file ecc. Tutto il contenuto di WAR presente per creare un modulo autonomo.


5

Fondamentalmente entrambi gli archivi compressi. war viene utilizzato per l'applicazione Web con una struttura di directory specifica.


4

war e jar sono archivi per i file java. la guerra è un archivio web e sono in esecuzione sul web server. jar è l'archivio java.


1

Guerra -

distribuire applicazioni Web basate su Java. Un WAR ha la stessa struttura di file di un file JAR, che è un singolo file compresso che contiene più file raggruppati al suo interno.

Vaso -

I file .jar contengono file di librerie, risorse e accessori come file di proprietà.

I file WAR vengono utilizzati per combinare JSP, servlet, file di classe Java, file XML, librerie javascript, librerie JAR, pagine Web statiche e qualsiasi altra risorsa necessaria per eseguire l'applicazione.


0

Jar : - jar contiene solo .class war : - war contiene html, js, css e .class anche pagine jsp e servlet


0

I file JAR consentono di impacchettare più file al fine di utilizzarlo come libreria, plugin o qualsiasi tipo di applicazione. D'altro canto, i file WAR vengono utilizzati solo per le applicazioni Web.

JAR può essere creato con qualsiasi struttura desiderata. Al contrario, WAR ha una struttura predefinita con directory WEB-INF e META-INF.

Un file JAR consente a Java Runtime Environment (JRE) di distribuire un'intera applicazione comprese le classi e le risorse associate in una singola richiesta. D'altro canto, un file WAR consente di testare e distribuire facilmente un'applicazione Web.


0

Un'estensione del file JAR è .jar e viene creata con il comando jar dal prompt dei comandi (come il comando javac viene eseguito). Generalmente, un file JAR contiene risorse relative a Java come librerie, classi ecc. Il file JAR è come il file winzip, tranne per il fatto che i file Jar sono indipendenti dalla piattaforma.

Un file WAR è semplicemente un file JAR ma contiene solo file Java relativi al Web come Servlet, JSP, HTML.

Per eseguire un file WAR, è necessario un server Web o un contenitore Web, ad esempio Tomcat o Weblogic o Websphere. Per eseguire un file JAR, è sufficiente JDK semplice.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.