Heim >Java >javaLernprogramm >Wie erstellt man ordnungsgemäß eine JAR-Datei mit JarOutputStream in Java?
Erstellen einer JAR-Datei mit JarOutputStream
Dieser Artikel befasst sich mit der programmgesteuerten Erstellung von JAR-Dateien mithilfe der Java-Klasse java.util.jar.JarOutputStream. Auch wenn die erstellte JAR-Datei zunächst korrekt aussieht, kann es bei der Verwendung dazu kommen, dass die Bibliotheken nicht geladen werden. Der Grund liegt in bestimmten undokumentierten Macken von JarOutputStream.
Macken von JarOutputStream:
Richtiger Ansatz mit JarOutputStream:
Um eine JAR-Datei mit einer Manifestdatei mit der richtigen Methode zu erstellen, befolgen Sie diese Schritte:
add()-Methode:
<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>
Durch Befolgen dieser Richtlinien können Sie JAR-Dateien programmgesteuert mit JarOutputStream erstellen, die mit anderen Java-Tools kompatibel sind.
Das obige ist der detaillierte Inhalt vonWie erstellt man ordnungsgemäß eine JAR-Datei mit JarOutputStream in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!