謎の解明: Java を使用した JAR ファイルの抽出
Java を使用する場合、抽出する必要がある状況に遭遇することがあります。 JAR ファイルの内容。この汎用形式は、クラス、ライブラリ、データなどのリソースをカプセル化します。ネイティブの jar コマンドライン ツールは JAR ファイルを解凍できますが、常に連携するとは限りません。
エラーの解明
jar -xf filename.jar を実行すると、謎のエラーが発生しました:「error=2、そのようなファイルまたはディレクトリはありません。」このわかりにくいメッセージは、jar 実行可能ファイルが見つからないことを示しています。これを修正するには、jar 実行可能ファイルへのパスが環境変数で正しく指定されていることを確認してください。
Java のパワーを利用する
幸いなことに、Java には、簡単に抽出するための包括的な API が用意されています。 JAR ファイル。 1 つのアプローチは、java.util.jar.JarFile クラスを利用することです。このクラスを使用すると、JAR ファイルを開いてその内容を反復処理できます。
実装の概要
次のコード スニペットを考えてみましょう:
<code class="java">java.util.jar.JarFile jar = new java.util.jar.JarFile(jarFile); java.util.Enumeration enumEntries = jar.entries(); while (enumEntries.hasMoreElements()) { java.util.jar.JarEntry file = (java.util.jar.JarEntry) enumEntries.nextElement(); java.io.File f = new java.io.File(destDir + java.io.File.separator + file.getName()); if (file.isDirectory()) { f.mkdir(); continue; } java.io.InputStream is = jar.getInputStream(file); java.io.FileOutputStream fos = new java.io.FileOutputStream(f); while (is.available() > 0) { fos.write(is.read()); } fos.close(); is.close(); } jar.close();</code>
このコードは、JAR ファイルのエントリを反復処理し、それらを抽出して、指定されたディレクトリに保存します。 destDir 変数を変更して、目的の抽出場所を指定できます。
さらに詳しい情報については、次のリソースを参照することもできます。
以上がJava で JAR ファイルを抽出する方法: ステップバイステップ ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。