Wyodrębnianie pliku .jar za pomocą wiersza poleceń


116

Próbuję wyodrębnić pliki z pliku .jar. Jak to zrobić za pomocą wiersza poleceń?

Używam systemu Windows 7

Odpowiedzi:


148

Z dokumentów :

Aby wyodrębnić pliki z pliku jar, użyj x, jak w:

C:\Java> jar xf myFile.jar

Aby wyodrębnić tylko niektóre pliki z pliku jar, podaj ich nazwy:

C:\Java> jar xf myFile.jar foo bar

Folder, w którym jarprawdopodobnie nie jest C:\Javadla Ciebie, na mojej partycji Windows to:

C:\Program Files (x86)\Java\jdk[some_version_here]\bin

O ile lokalizacja nie jarznajduje się w zmiennej środowiskowej ścieżki, będziesz musiał określić pełną ścieżkę / uruchomić program z wnętrza folderu.

EDYCJA: Oto kolejny artykuł poświęcony wyodrębnianiu plików JAR: http://docs.oracle.com/javase/tutorial/deployment/jar/unpack.html


Ok, kiedy wykonuję to polecenie jar xf ..., pojawia się błąd: „jar” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy. Jak to naprawić?
Bobby C

1
@BobbyC: Określ pełną ścieżkę jar.exedo folderu lub uruchom go z wnętrza folderu.
AusCBloke

Dzięki, teraz wszystko jest w porządku!
Bobby C,

2
java.io.IOException: META-INF: nie można utworzyć katalogu w sun.tools.jar.Main.extractFile (Main.java:928) w sun.tools.jar.Main.extract (Main.java:852) w sun .tools.jar.Main.run (Main.java:242) w sun.tools.jar.Main.main (Main.java:1149) jak usunąć ten błąd?
AnilPatel

1
@AnilPatel Naprawiłem to, uruchamiając wiersz poleceń jako administrator (kliknij prawym przyciskiem myszy "uruchom jako administrator")
jessieloo

34

Zwróć uwagę, że plik jar jest plikiem ZIP, a każde narzędzie Zip (takie jak 7-Zip) może zajrzeć do jego wnętrza.


6
Proszę spojrzeć tutaj, to jest to, czego wszyscy potrzebujecie.
Ali

28

W Ubuntu:

unzip file.jar -d dir_name_where_extracting


1
Przydatne dla systemów, które nie mają jarpoleceń! Działa bez żadnych problemów na CentOS 5.7
djthoms

8

Możesz użyć następującego polecenia: jar xf rt.jar

Gdzie Xoznacza wyodrębnianie, a fbyłyby dowolne opcje wskazujące, że plik JAR, z którego mają zostać wyodrębnione pliki, jest określony w wierszu poleceń, a nie przez stdin.


2

Java ma klasę przeznaczoną specjalnie dla plików zip, a jeszcze bardziej klasę dla plików Jar.

java.util.jar.JarOutputStream
java.util.jar.JarInputStream

używając tych, które możesz, na polecenie z konsoli, używając skanera ustawionego na system.in

Scanner console = new Scanner(System.in);
String input = console.nextLine();

następnie pobierz wszystkie komponenty i zapisz je jako plik.

JarEntry JE = null;
while((JE = getNextJarEntry()) != null)
{
    //do stuff with JE
}

Możesz także użyć java.util.zip.ZipInputStream, ponieważ widząc, że plik JAR jest w tym samym formacie co plik ZIP, ZipInputStream będzie w stanie obsłużyć plik Jar, w rzeczywistości JarInputStream faktycznie rozszerza ZipInputStream.

alternatywą jest również zamiast getNextJarEntry, aby użyć getNextEntry


2

jar xf myFile.jar
zmień myFile na nazwę swojego pliku
to zapisze zawartość w bieżącym folderze pliku .jar,
który powinien zrobić :)


0

Biorąc pod uwagę plik o nazwie Me.Jar:

  1. Przejdź do cmd
  2. Wciśnij Enter
  3. Użyj jarpolecenia Java - używam jdk1.8.0_31, więc wpisuję

    C: \ Program Files (x86) \ Java \ jdk1.8.0_31 \ bin \ jar xf me.jar

To powinno wyodrębnić plik do kosza folderu. Poszukaj pliku .class w moim przypadku mój Me.jar zawiera Valentine.class

Wpisz java Valentinei naciśnij Enter, a plik wiadomości zostanie otwarty.


-3

Aby wyodrębnić słoik do określonego folderu, użyj tego polecenia w wierszu polecenia

C:\Java> jar xf myFile.jar -C "C:\tempfolder"

7
To nie działa. -Cmożna używać tylko podczas tworzenia plików jar.
unwichtich

@unwichtich W takim przypadku czy istnieje sposób na określenie folderu docelowego?
Linia

2
W systemach Linux, których możesz użyć unzip file.jar -d dir_name_where_extracting, w Windows musisz skopiować / przenieść plik JAR do folderu docelowego, a następnie wyodrębnić go tam ...
unwichtich
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.