使用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中文網其他相關文章!