Hoe .war-bestanden uitpakken in java? ZIP versus JAR

Ik heb een webprogramma waarbij ik wil dat de gebruiker een .war-bestand kan importeren en ik kan bepaalde bestanden uit het .war-bestand extraheren. Ik heb twee klassenbibliotheken gevonden: java.util.zip.*en java.util.jar.*. Van wat ik begrijp, is een WAR-bestand een speciaal JAR-bestand dat een speciaal ZIP-bestand is. Dus zou het beter zijn om java.util.jarte gebruiken? Als ZIP- en JAR-bestanden vrijwel hetzelfde zijn, waarom zijn er dan twee verschillende bibliotheken nodig?


Antwoord 1, autoriteit 100%

Als je kijkt naar de JarFileAPI ziet u dat het een subklasse is van de ZipFileklasse.

De jar-specifieke klassen voegen meestal alleen jar-specifieke functionaliteit toe, zoals directe ondersteuning voor manifest-bestandskenmerken, enzovoort.

Het is OOP “in actie”; aangezien jar-bestanden zip-bestanden zijn, kunnen de jar-klassen zip-functionaliteit gebruiken en extra hulpprogramma’s bieden.


Antwoord 2, autoriteit 93%

WAR-bestand is slechts een JAR-bestand, om het uit te pakken, geeft u het volgende jar-commando op –

jar -xvf yourWARfileName.war

Als het jar-commando niet wordt gevonden, wat soms gebeurt in de Windows-opdrachtprompt, geef dan het volledige pad op, d.w.z. in mijn geval wel,

c:\java\jdk-1.7.0\bin\jar -xvf my-file.war

Antwoord 3, autoriteit 48%

Hernoem gewoon de .warin .jaren pak het uit met Winrar(of een andere archiefbeheerder).


Antwoord 4, autoriteit 13%

Als u Linux of Ubuntu gebruikt, kunt u direct gegevens uit het .war-bestand extraheren.

Een war-bestand is slechts een jar-bestand, om het uit te pakken, geeft u het volgende commando op met het programma jar:

jar -xvf yourWARfileName.war

Antwoord 5

Zoals je al zei, een jar iseen zip-bestand (geen speciaal type, maar gewoon een oude zip), dus beide bibliotheken zouden kunnen werken. De redenering is dat de gemiddelde persoon die een *.zip-extensie ziet, de neiging heeft om deze uit te pakken. Omdat de app-server het wil uitpakken, zorgt een eenvoudige hernoeming ervoor dat mensen het uit gewoonte niet uitpakken. Evenzo moet het *.war-bestand ook ongecomprimeerd blijven.

java.util.jar voegt in feite gewoon extra functionaliteit toe aan java.util.zip met heel weinig extra overhead. Laat de java.util.jar een hulp zijn bij het posten, enz… en gebruik het.


Antwoord 6

Jar-klasse/pakket is voor specifieke Jar-bestandsmechanismen waarbij er een manifest is dat in sommige gevallen door de Jar-bestanden wordt gebruikt.

De klasse/het pakket Zip-bestand verwerkt alle gecomprimeerde bestanden die Jar-bestanden bevatten, wat een type gecomprimeerd bestand is.

De Jar-klassen breiden dus de Zip-pakketklassen uit.


Antwoord 7

U kunt een ommekeer gebruiken en de applicatie gewoon op de Tomcat-server implementeren: kopieer/plak gewoon onder de map webapps.
Zodra Tomcat is gestart, wordt er een map met de app-naam gemaakt en hebt u direct toegang tot de inhoud


Antwoord 8

Voor mac-gebruikers: in terminalopdracht:

unzip yourWARfileName.war

Other episodes