web-dev-qa-db-ja.com

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

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

Windows 7を実行しています

90
Bobby C

ドキュメント から:

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

C:\Java> jar xf myFile.jar

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

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

jarが存在するフォルダーは、おそらくあなたにとってC:\Javaではありません。私のWindowsパーティションでは次のとおりです。

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

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

EDIT:次に、特にJARの抽出に焦点を当てた別の記事を示します。 http://docs.Oracle.com/javase/tutorial/deployment/ jar/unpack.html

119
AusCBloke

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

27
Hot Licks

Ubuntuの場合:

unzip file.jar -d dir_name_where_extracting

21
burtsevyg

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

Xは抽出を表し、fは、ファイルの抽出元のJARファイルがstdinではなくコマンドラインで指定されることを示すオプションです。

8
Nikhil Arora

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を拡張します。

getNextJarEntryの代わりにgetNextEntryを使用することもできます

2
D3_JMultiply

jar xf myFile.jar
myFileをファイルの名前に変更します
これにより、内容が.jarファイルの現在のフォルダーに保存されます。
それはすべきです:)

2
abe312

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キーを押すと、メッセージファイルが開きます。

0
user4566153