使用 JarOutputStream 创建 JAR 文件:对隐藏的怪癖进行故障排除
虽然 JarOutputStream 实用程序对于以编程方式创建 JAR 文件来说看起来很简单,但它包含一些未记录的怪癖这可能会损害生成的档案的完整性。这些怪癖体现在三个特定区域:
为了确保正确创建 JAR,请遵循以下准则:
<code class="java">public void run() throws IOException { Manifest manifest = new Manifest(); // ... (populate manifest) JarOutputStream target = new JarOutputStream( new FileOutputStream("output.jar"), manifest ); add(new File("inputDirectory"), target); target.close(); } private void add(File source, JarOutputStream target) throws IOException { String name = source.getPath().replace("\", "/"); if (source.isDirectory()) { if (!name.endsWith("/")) { name += "/"; } JarEntry entry = new JarEntry(name); // ... (set entry properties) target.putNextEntry(entry); target.closeEntry(); for (File nestedFile : source.listFiles()) { add(nestedFile, target); } } else { JarEntry entry = new JarEntry(name); // ... (set entry properties) target.putNextEntry(entry); try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(source))) { // ... (write file to JAR entry) } target.closeEntry(); } }</code>
通过遵循这些准则,您可以准确地创建 JAR 文件,该文件将按预期提取和运行。
以上是使用 JarOutputStream 创建 JAR 文件时如何避免隐藏的怪癖?的详细内容。更多信息请关注PHP中文网其他相关文章!