ホームページ > Java > &#&チュートリアル > Java で JarOutputStream を使用して JAR ファイルを適切に作成する方法

Java で JarOutputStream を使用して JAR ファイルを適切に作成する方法

Patricia Arquette
リリース: 2024-10-29 13:42:02
オリジナル
975 人が閲覧しました

How to Properly Create a JAR File Using JarOutputStream in Java?

JarOutputStream を使用した JAR ファイルの作成

この記事では、Java の java.util.jar.JarOutputStream クラスを使用してプログラムによる JAR ファイルの作成について説明します。作成された JAR ファイルは最初は正しいように見えますが、使用時にライブラリのロードに失敗する可能性があります。その理由は、文書化されていない JarOutputStream の特殊な点にあります。

JarOutputStream の特殊:

  • ディレクトリ名は '/' スラッシュで終わる必要があります。
  • パスには '' ではなく '/' スラッシュを使用する必要があります。
  • エントリは '/' スラッシュで始めることはできません。

JarOutputStream を使用した正しいアプローチ:

正しい方法を使用してマニフェスト ファイルを含む JAR ファイルを作成するには、次の手順に従います。

  1. マニフェスト オブジェクトを作成し、その主要な属性を設定します。
  2. 作成FileOutputStream と Manifest オブジェクトを使用する JarOutputStream。
  3. add() メソッドを使用して、ファイルとディレクトリを JAR ファイルに再帰的に含めます。

add() メソッド:

<code class="java">private void add(File source, JarOutputStream target) throws IOException {
    String name = source.getPath().replace("/", "/"); // Ensure path uses '/' slash
    if (source.isDirectory()) {
        if (!name.endsWith("/")) {
            name += "/"; // Add trailing '/' for directories
        }
        JarEntry entry = new JarEntry(name);
        entry.setTime(source.lastModified());
        target.putNextEntry(entry);
        target.closeEntry();
        for (File nestedFile : source.listFiles()) {
            add(nestedFile, target);
        }
    } else {
        JarEntry entry = new JarEntry(name);
        entry.setTime(source.lastModified());
        target.putNextEntry(entry);
        try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(source))) {
            byte[] buffer = new byte[1024];
            while (true) {
                int count = in.read(buffer);
                if (count == -1)
                    break;
                target.write(buffer, 0, count);
            }
            target.closeEntry();
        }
    }
}</code>
ログイン後にコピー

これらのガイドラインに従うことで、JarOutputStream を使用して、他の Java ツールと互換性のある JAR ファイルをプログラムで作成できます。

以上がJava で JarOutputStream を使用して JAR ファイルを適切に作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート