.jarファイルからファイルを抽出しようとしています。コマンドラインを使用してそれを行うにはどうすればよいですか?
Windows 7を実行しています
ドキュメント から:
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
JarファイルはZipファイルであり、任意のZipツール(7-Zipなど)はjar内を見ることができることに注意してください。
Ubuntuの場合:
unzip file.jar -d dir_name_where_extracting
次のコマンドを使用できます。jar xf rt.jar
X
は抽出を表し、f
は、ファイルの抽出元のJARファイルがstdinではなくコマンドラインで指定されることを示すオプションです。
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を使用することもできます
jar xf myFile.jar
myFileをファイルの名前に変更します
これにより、内容が.jarファイルの現在のフォルダーに保存されます。
それはすべきです:)
Me.Jarという名前のファイルがある場合:
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キーを押すと、メッセージファイルが開きます。