ホームページ  >  記事  >  Java  >  Java で JAR ファイルの内容を指定したディレクトリに抽出するにはどうすればよいですか?

Java で JAR ファイルの内容を指定したディレクトリに抽出するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 23:50:30390ブラウズ

How to Extract JAR File Contents to a Specified Directory in Java?

JAR ファイルのコンテンツを Java の指定されたディレクトリに抽出する

Java アプリケーションのパッケージ化によく使用される Jar ファイルは、圧縮形式で配布されます。 JAR ファイルの内容にプログラムで効率的にアクセスするには、JAR ファイルを抽出または解凍する必要があります。

コマンド ライン アプローチ: jar -xf エラーのトラブルシューティング

試行中jar -xf filename.jar コマンドを使用して JAR ファイルを解凍すると、「プログラム "jar" を実行できません: java.io.IOException: error=2, No such file or directory.」というエラーが発生する場合があります。この問題は、JAR 実行可能ファイルがシステム パスにない場合に発生します。これを解決するには、JAR 実行可能ファイルが現在のパスで利用可能であることを確認するか、それに応じてシステム パスを更新します。

プログラムによる解決策

JAR ファイルの内容を抽出するにはプログラム的には、次の 2 つのアプローチを使用できます。

  1. JAR/Zip アーカイブからのリソースの使用: JAR および ZIP アーカイブから Java リソースを抽出するには、この例を参照してください。
  2. カスタム抽出コード: あるいは、以下の Java コードを利用して 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()) { // if its a directory, create it
        f.mkdir();
        continue;
    }
    java.io.InputStream is = jar.getInputStream(file); // get the input stream
    java.io.FileOutputStream fos = new java.io.FileOutputStream(f);
    while (is.available() > 0) {  // write contents of 'is' to 'fos'
        fos.write(is.read());
    }
    fos.close();
    is.close();
}
jar.close();</code>

結論

上記のソリューションを実装すると、JAR ファイルの内容を Java アプリケーション内の指定されたディレクトリにシームレスに抽出できます。

以上がJava で JAR ファイルの内容を指定したディレクトリに抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。