.Jar dosyasını komut satırıyla çıkarma


116

Dosyaları bir .jar dosyasından çıkarmaya çalışıyorum. Bunu komut satırını kullanarak nasıl yaparım?

Windows 7 çalıştırıyorum

Yanıtlar:


148

Gönderen docs :

Dosyaları bir jar dosyasından çıkarmak için aşağıdaki xgibi kullanın :

C:\Java> jar xf myFile.jar

Bir jar dosyasından yalnızca belirli dosyaları çıkarmak için dosya adlarını sağlayın:

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

jarMuhtemelen C:\Javasizin için olmayan klasör , Windows bölümümde:

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

Konumu, jaryol ortam değişkeninizde olmadığı sürece, tam yolu belirtmeniz / programı klasörün içinden çalıştırmanız gerekir.

DÜZENLEME: İşte özellikle JAR'ları çıkarmaya odaklanan başka bir makale: http://docs.oracle.com/javase/tutorial/deployment/jar/unpack.html


Tamam, o jar xf ... komutunu yaptığımda şu hatayı alıyorum: 'jar' dahili veya harici bir komut, çalıştırılabilir program veya toplu iş dosyası olarak tanınmıyor. Bunu nasıl düzeltirim?
Bobby C

1
@BobbyC: Tam yolunu belirtin jar.exeveya klasörün içinden çalıştırın.
AusCBloke

Teşekkürler, şimdi her şey yolunda!
Bobby C

2
java.io.IOException: META-INF: güneşte sun.tools.jar.Main.extract (Main.java:852) adresinde sun.tools.jar.Main.extractFile (Main.java:928) konumunda dizin oluşturulamadı .tools.jar.Main.run (Main.java:242) sun.tools.jar.Main.main (Main.java:1149) bu hata nasıl kaldırılır?
AnilPatel

1
@AnilPatel Bunu, komut istemini yönetici olarak çalıştırarak düzelttim ("yönetici olarak çalıştır" a sağ tıklayın)
jessieloo

34

Bir jar dosyasının bir Zip dosyası olduğunu ve herhangi bir Zip aracının (7-Zip gibi) kavanozun içine bakabileceğini unutmayın.


6
Lütfen buraya bakın, hepinizin ihtiyacı olan şey bu.
Ali

28

Ubuntu'da:

unzip file.jar -d dir_name_where_extracting


1
jarKomutu olmayan sistemler için kullanışlıdır! CentOS 5.7'de sorunsuz çalışır
djthoms

8

Aşağıdaki komutu kullanabilirsiniz: jar xf rt.jar

Burada Xçıkarma anlamına gelir ve fdosyaların çıkarılacağı JAR dosyasının stdin yerine komut satırında belirtildiğini gösteren herhangi bir seçenek olabilir.


2

Java'nın özellikle zip dosyaları için bir sınıfı ve daha da özel olarak Jar Dosyaları için bir sınıfı vardır.

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

konsoldan bir komutla, sisteme ayarlanmış bir tarayıcı kullanarak yapabileceklerinizi kullanarak.

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

sonra tüm bileşenleri alın ve bir dosya olarak yazın.

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

Bunun yerine java.util.zip.ZipInputStream'i de kullanabilirsiniz, çünkü bir JAR dosyası bir ZIP dosyasıyla aynı formatta olduğundan, ZipInputStream Jar dosyasını işleyebilir, aslında JarInputStream aslında ZipInputStream'i genişletir.

getNextEntry kullanmak için getNextJarEntry yerine bir alternatif de vardır


2

jar xf myFile.jar
myFile dosyasını dosyanızın adıyla değiştirin,
bu, içeriği
yapmanız gereken .jar dosyasının geçerli klasörüne kaydedecektir :)


0

Me.Jar adlı bir dosya verildiğinde:

  1. Cmd'ye git
  2. Enter tuşuna basın
  3. Java jarkomutunu kullanın - jdk1.8.0_31 kullanıyorum, böylece yazabilirim

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

Bu, dosyayı klasör bölmesine çıkarmalıdır. Benim durumumda .class dosyasını arayın, Me.jar dosyam bir Valentine.class içeriyor

Yazıp java ValentineEnter tuşuna basın, mesaj dosyanız açılacaktır.


-3

Jar'ı belirtilen klasöre çıkarmak için bu komutu komut istemi aracılığıyla kullanın

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

7
Bu çalışmıyor. -Cyalnızca jar dosyaları oluşturulurken kullanılabilir.
wichtich

@unwichtich Bu durumda, hedef klasörü belirlemenin bir yolu var mı?
Satır

2
Kullanabileceğiniz Linux sistemlerinde unzip file.jar -d dir_name_where_extracting, Windows'ta
JAR'ınızı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.