Mengekstrak file .jar dengan command line

116

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

Saya menjalankan Windows 7

Bobby C
sumber

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

AusCBloke
sumber
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.

Licks panas
sumber
6
Silakan lihat di sini, inilah yang Anda semua butuhkan.
Ali
28

Di Ubuntu:

unzip file.jar -d dir_name_where_extracting

burtsevyg.dll
sumber
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.

Nikhil Arora
sumber
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

D3_JMultiply
sumber
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 :)

abe312
sumber
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.

pengguna4566153
sumber
-3

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

C:\Java> jar xf myFile.jar -C "C:\tempfolder"
VijayaKumar Thangavel
sumber
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