コマンドラインで.jarファイルを抽出する


115

.jarファイルからファイルを抽出しようとしています。コマンドラインを使用してどうすればよいですか?

Windows 7を実行しています

回答:


146

ドキュメントから:

jarファイルからファイルを抽出するにはx、次のようにを使用します。

C:\Java> jar xf myFile.jar

jarファイルから特定のファイルのみを抽出するには、ファイル名を指定します。

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

私のWindowsパーティションでjarは、おそらく次のフォルダは適切ではありませんC:\Java

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

の場所がjarパス環境変数にない限り、フルパスを指定するか、フォルダー内からプログラムを実行する必要があります。

編集:これは、特にJARの抽出に焦点を当てた別の記事です:http : //docs.oracle.com/javase/tutorial/deployment/jar/unpack.html


OK、そのjar xf ...コマンドを実行すると、「jar」が内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されないというエラーが表示されます。どうすれば修正できますか?
ボビーC

1
@BobbyC:フルパスを指定するjar.exeか、フォルダー内から実行します。
AusCBloke

ありがとう、すべて順調です。
ボビーC

2
java.io.IOException:META-INF:sun.tools.jar.Main.extract(Main.java:852)のsun.tools.jar.Main.extractFile(Main.java:928)にディレクトリを作成できませんでした.tools.jar.Main.run(Main.java:242)at sun.tools.jar.Main.main(Main.java:1149)このエラーを取り除く方法は?
AnilPatel 2013

1
@AnilPatelこれを修正するには、管理者としてコマンドプロンプトを実行します([管理者として実行]を右クリックします)
jessieloo

34

jarファイルはZipファイルであり、Zipツール(7-Zipなど)はjar内を参照できることに注意してください。


6
ここを見てください、これはあなたがすべて必要なものです。
アリ


8

次のコマンドを使用できます。 jar xf rt.jar

どこX抽出の略で、fファイルを抽出すべきJARファイルがむしろ標準入力経由よりも、コマンドラインで指定されていることを示す任意のオプションになります。


2

Javaには、zipファイル専用のクラスと、jarファイル専用のクラスがあります。

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

それらを使用して、コンソールからのコマンドで、system.inに設定されたスキャナーを使用

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

次に、すべてのコンポーネントを取得して、ファイルとして書き込みます。

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

代わりにjava.util.zip.ZipInputStreamを使用することもできます。JARファイルがZIPファイルと同じ形式であるため、ZipInputStreamはJarファイルを処理できます。実際、JarInputStreamは実際にはZipInputStreamを拡張します。

getNextEntryを使用するための代替手段もgetNextJarEntryの代わりです


2

jar xf myFile.jar
あなたのファイルの名前の変更のmyFile
これは.jarファイルの現在のフォルダの内容を保存します
行う必要があります:)


0

Me.Jarという名前のファイルがあるとします。

  1. cmdに移動
  2. Enterキーを押す
  3. Java jarコマンドを使用します-jdk1.8.0_31を使用しているので、次のように入力します

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

ファイルがフォルダーbinに抽出されます。私の場合は.classファイルを探してください私のMe.jarにはValentine.classが含まれています

入力しjava Valentine、Enterキーを押しますと、あなたのメッセージファイルが開かれます。


-3

jarを指定したフォルダーに抽出するには、コマンドプロンプトからこのコマンドを使用します

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

7
これは機能しません。-Cjarファイルの作成時にのみ使用できます。
unwichtich 2015年

@unwichtichその場合、宛先フォルダを指定する方法はありますか?
ラインの

2
使用できるLinuxシステムではunzip file.jar -d dir_name_where_extracting、WindowsではJARを宛先フォルダーにコピー/移動してから、そこに抽出する必要があります...
unwichtich
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.