Jak wydobyć.pliki wojenne w Javie? ZIP vs JAR
Mam program internetowy, w którym chcę, aby użytkownik mógł importować plik .war
i mogę wyodrębnić pewne pliki z pliku .war
. Znalazłem dwie biblioteki klas: java.util.zip.*
i java.util.jar.*
. Z tego, co rozumiem, plik wojenny jest specjalnym plikiem JAR, który jest specjalnym plikiem ZIP. Czy lepiej użyć java.util.jar
? Jeśli pliki ZIP i Jar są prawie takie same, dlaczego są potrzebne dwie różne biblioteki?
8 answers
Jeśli spojrzysz na API JarFile zobaczysz, że jest to podklasa klasy ZipFile .
Klasy specyficzne dla jar najczęściej dodają funkcje specyficzne dla jar, takie jak bezpośrednia obsługa atrybutów plików manifestu i tak dalej.
To OOP "w akcji"; Ponieważ pliki JAR są plikami zip, klasy jar mogą korzystać z funkcji zip i zapewnić dodatkowe narzędzie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-24 22:38:55
Plik WAR jest tylko plikiem JAR, aby go wyodrębnić, wystarczy wydać polecenie jar - {–3]}
jar -xvf yourWARfileName.war
Jeśli nie znaleziono polecenia jar, co czasami zdarza się w wierszu polecenia systemu Windows, podaj pełną ścieżkę, tzn. w moim przypadku jest to
c:\java\jdk-1.7.0\bin\jar -xvf my-file.war
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-31 18:03:26
Po prostu zmień nazwę .war
na .jar
i rozpakuj ją za pomocą Winrar
(lub innego menedżera archiwum).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-05 13:48:07
Jeśli używasz Linuksa lub Ubuntu, możesz bezpośrednio wyodrębnić dane z pliku .war
.
Plik war
jest po prostu plikiem jar
, aby go rozpakować, wystarczy wydać następujące polecenie za pomocą programu jar
:
jar -xvf yourWARfileName.war
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-05 13:19:00
Jak powiedziałeś, jar to Plik zip (Nie specjalny typ, ale zwykły stary zip), więc każda biblioteka może działać. Rozumowanie jest takie, że przeciętny człowiek, widząc *.rozszerzenie zip, ma tendencję do rozpakowywania go. Ponieważ serwer aplikacji chce go rozpakować, prosta zmiana nazwy sprawia, że ludzie nie rozpakowują go po prostu z przyzwyczajenia. Podobnie,*.plik wojenny również powinien pozostać nieskompresowany.
Java.util.jar po prostu dodaje dodatkową funkcjonalność do Javy.util.zamek błyskawiczny z bardzo małym dodatkowe koszty. Niech java.util.jar być pomocnikiem w delegowaniu itp... i użyj go.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-24 22:37:47
Klasa / pakiet Jar jest przeznaczona dla określonych mechanizmów plików jar, gdzie istnieje manifest, który jest używany przez pliki Jar w niektórych przypadkach.
Klasa/pakiet plików Zip obsługuje wszystkie skompresowane pliki zawierające pliki Jar, które są typem skompresowanego pliku.
Klasy Jar rozszerzają w ten sposób klasy pakietu Zip.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-24 22:39:26
Możesz użyć funkcji turn-around i po prostu wdrożyć aplikację na serwerze tomcat: wystarczy skopiować / wkleić w folderze webapps. Po uruchomieniu programu tomcat utworzy folder z nazwą aplikacji i będzie można uzyskać bezpośredni dostęp do zawartości
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-18 08:57:56
Dla użytkowników komputerów mac: in terminal command:
unzip yourWARfileName.war
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-04 15:51:02