JAR-Dateien von Drittanbietern mit DLL-Abhängigkeiten packen
F: Ich habe eine Java-Bibliothek, die zwei DLL-Dateien und mein eigenes Java-Programm erfordert das diese Bibliothek nutzt. Wie kann ich alle Komponenten in einer einzigen JAR-Datei kombinieren, die sowohl meinen Code, das Drittanbieter-JAR als auch die DLLs enthält?
A: So erstellen Sie eine JAR-Datei, die DLL-Abhängigkeiten enthält:
Im Bereich der Verpackung werden DLLs und andere Dateien ähnlich behandelt wie Dateien in einem ZIP-Archiv. Sie können den folgenden Java-Code verwenden, um DLLs aus einem JAR zu extrahieren:
import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; public class ExtractDLLs { public static void main(String[] args) { String jarPath = "path/to/my.jar"; String outputDirectory = "path/to/output"; try (ZipFile jarFile = new ZipFile(jarPath)) { Enumeration<? extends ZipEntry> entries = jarFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); if (entry.isDirectory()) { continue; } if (entry.getName().endsWith(".dll")) { InputStream in = jarFile.getInputStream(entry); OutputStream out = new FileOutputStream(new File(outputDirectory, entry.getName())); byte[] buffer = new byte[1024]; int len; while ((len = in.read(buffer)) > 0) { out.write(buffer, 0, len); } in.close(); out.close(); } } } catch (IOException e) { e.printStackTrace(); } } }
Denken Sie daran, dass das Packen von DLLs oder anderen Dateien in ein JAR genauso einfach ist wie das Packen von Dateien in ein ZIP-Archiv. Die bereitgestellte Codedemonstration nutzt eine ZIP-Dateistruktur, um DLLs aus einem JAR zu extrahieren.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Java-Anwendung mit JAR-Dateien und DLL-Abhängigkeiten von Drittanbietern in ein einziges JAR packen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!