JarOutputStream を使用した JAR ファイルの作成
この記事では、Java の java.util.jar.JarOutputStream クラスを使用してプログラムによる JAR ファイルの作成について説明します。作成された JAR ファイルは最初は正しいように見えますが、使用時にライブラリのロードに失敗する可能性があります。その理由は、文書化されていない JarOutputStream の特殊な点にあります。
JarOutputStream の特殊:
JarOutputStream を使用した正しいアプローチ:
正しい方法を使用してマニフェスト ファイルを含む 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 サイトの他の関連記事を参照してください。