Mengekstrak file .jar dengan command line


116

Saya mencoba mengekstrak file dari file .jar. Bagaimana cara melakukannya menggunakan baris perintah?

Saya menjalankan Windows 7

Jawaban:


148

Dari dokumen :

Untuk mengekstrak file dari file jar, gunakan x, seperti di:

C:\Java> jar xf myFile.jar

Untuk mengekstrak hanya file tertentu dari file jar, berikan nama filenya:

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

Folder jaryang mungkin bukan C:\Javauntuk Anda, di partisi Windows saya adalah:

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

Kecuali lokasinya jarada di variabel lingkungan jalur Anda, Anda harus menentukan jalur lengkap / menjalankan program dari dalam folder.

EDIT: Berikut artikel lain, yang secara khusus difokuskan pada mengekstrak JAR: http://docs.oracle.com/javase/tutorial/deployment/jar/unpack.html


Ok, Ketika saya melakukan perintah jar xf ... itu, saya mendapatkan kesalahan: 'jar' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dioperasikan atau file batch. Bagaimana cara mengatasinya?
Bobby C

1
@BobbyC: Tentukan jalur lengkap jar.exeatau jalankan dari dalam folder.
AusCBloke

Terima kasih, semuanya baik-baik saja sekarang!
Bobby C

2
java.io.IOException: META-INF: tidak dapat membuat direktori di sun.tools.jar.Main.extractFile (Main.java:928) di sun.tools.jar.Main.extract (Main.java:852) saat matahari .tools.jar.Main.run (Main.java:242) di sun.tools.jar.Main.main (Main.java:1149) bagaimana cara menghilangkan kesalahan ini?
AnilPatel

1
@AnilPatel Saya memperbaikinya dengan menjalankan command prompt sebagai administrator (klik kanan "run as administrator")
jessieloo

34

Perhatikan bahwa file jar adalah file Zip, dan alat Zip apa pun (seperti 7-Zip) dapat melihat ke dalam jar.


6
Silakan lihat di sini, inilah yang Anda semua butuhkan.
Ali

28

Di Ubuntu:

unzip file.jar -d dir_name_where_extracting


1
Berguna untuk sistem yang tidak memiliki jarperintah! Bekerja tanpa masalah pada CentOS 5.7
djthoms

8

Anda dapat menggunakan perintah berikut: jar xf rt.jar

Di mana Xsingkatan dari ekstraksi dan fakan menjadi opsi apa pun yang menunjukkan bahwa file JAR dari mana file akan diekstraksi ditentukan pada baris perintah, bukan melalui stdin.


2

Java memiliki kelas khusus untuk file zip dan satu lagi khusus untuk File Jar.

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

menggunakan yang Anda bisa, dengan perintah dari konsol, menggunakan pemindai yang disetel ke system.in

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

kemudian dapatkan semua komponen dan tulis sebagai file.

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

Anda juga dapat menggunakan java.util.zip.ZipInputStream, karena melihat file JAR dalam format yang sama dengan file ZIP, ZipInputStream akan dapat menangani file Jar, pada kenyataannya JarInputStream sebenarnya memperluas ZipInputStream.

sebuah alternatif juga bukan getNextJarEntry, untuk menggunakan getNextEntry


2

jar xf myFile.jar
ubah myFile menjadi nama file Anda
ini akan menyimpan konten di folder saat ini dari file .jar
yang harus dilakukan :)


0

Diberikan file bernama Me.Jar:

  1. Buka cmd
  2. Tekan Enter
  3. Gunakan jarperintah Java - Saya menggunakan jdk1.8.0_31 jadi saya akan mengetik

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

Itu harus mengekstrak file ke folder bin. Cari file .class dalam kasus saya Me.jar saya berisi Valentine.class

Ketik java Valentinedan tekan Enter dan file pesan Anda akan dibuka.


-3

Untuk mengekstrak jar ke dalam folder tertentu, gunakan perintah ini melalui command prompt

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

7
Ini tidak berhasil. -Chanya dapat digunakan saat membuat file jar.
unwichtich

@unwichtich Dalam hal ini, apakah ada cara untuk menentukan folder tujuan?
Jalur

2
Pada sistem Linux yang dapat Anda gunakan unzip file.jar -d dir_name_where_extracting, pada Windows Anda harus menyalin / memindahkan JAR Anda ke folder tujuan dan kemudian mengekstraknya di sana ...
unwichtich
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.