Création d'un fichier JAR à l'aide de JarOutputStream
Cet article traite de la création de fichiers JAR par programme à l'aide de la classe java.util.jar.JarOutputStream de Java. Bien que le fichier JAR créé puisse sembler correct au départ, il peut ne pas réussir à charger les bibliothèques lorsqu'il est utilisé. La raison réside dans certaines bizarreries non documentées de JarOutputStream.
Bizarres de JarOutputStream :
Approche correcte à l'aide de JarOutputStream :
Pour créer un fichier JAR avec un fichier manifeste en utilisant la bonne méthode, suivez ces étapes :
Méthode 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>
En suivant ces directives, vous pouvez créer des fichiers JAR par programme à l'aide de JarOutputStream qui sont compatibles avec d'autres outils Java.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!