使用 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>
按照这些准则,您可以使用与其他 Java 工具兼容的 JarOutputStream 以编程方式创建 JAR 文件。
以上是如何在 Java 中使用 JarOutputStream 正确创建 JAR 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!