Heim >Java >javaLernprogramm >Wie kann ich DLLs mit einer JAR-Datei eines Drittanbieters zur Verwendung in einer Java-Anwendung verpacken?

Wie kann ich DLLs mit einer JAR-Datei eines Drittanbieters zur Verwendung in einer Java-Anwendung verpacken?

Susan Sarandon
Susan SarandonOriginal
2024-11-25 21:51:12718Durchsuche

How Can I Package DLLs with a Third-Party JAR File for Use in a Java Application?

DLLs in JAR-Dateien packen

Sie haben eine JAR-Bibliothek eines Drittanbieters erworben, die zwei entsprechende DLL-Dateien enthält. Ihre Java-Anwendung basiert auf dieser Bibliothek und Sie möchten alle Komponenten (Ihren Code, die JAR von Drittanbietern und DLLs) in einer einzigen, praktischen JAR-Datei zusammenführen.

Verpacken der DLLs

JAR-Dateien funktionieren im Wesentlichen wie ZIP-Archive. Um DLLs in Ihr JAR aufzunehmen, platzieren Sie sie einfach an einer beliebigen Stelle in der JAR-Struktur. Allerdings reicht es nicht aus, die DLLs einfach zu packen. Bevor Sie sie verwenden, müssen Sie sie aus dem JAR extrahieren und an einem bestimmten Ort auf Ihrer Festplatte speichern.

Codebeispiele

Hier ist ein beispielhafter Java-Codeblock demonstriert diesen Prozess:

// Package the DLLs in the JAR file
// ... (your code here)

// Extract and load the DLLs from the JAR
private static void loadFromJar() {
    // Determine the temporary directory path
    String path = "AC_" + new Date().getTime();

    // Extract the DLLs and load them into memory
    loadLib(path, "acwrapper");
    loadLib(path, "aamapi51");
    loadLib(path, "libeay32");
}

// Extract and load a specific DLL
private static void loadLib(String path, String name) {
    InputStream in = Foo.class.getResourceAsStream("/lib-bin/" + name + ".dll");
    File fileOut = new File(System.getProperty("java.io.tmpdir") + "/" + path + "/lib-bin/" + name + ".dll");

    OutputStream out = FileUtils.openOutputStream(fileOut);
    IOUtils.copy(in, out);
    in.close();
    out.close();

    System.load(fileOut.toString());
}

In diesem Code werden die DLLs in das durch „Pfad“ angegebene temporäre Verzeichnis extrahiert und dann mit in den Speicher geladen System.load(). Beachten Sie, dass Sie möglicherweise die genauen Dateipfade und Ressourcenpfade basierend auf Ihrer spezifischen JAR-Struktur und DLL-Speicherorte anpassen müssen.

Das obige ist der detaillierte Inhalt vonWie kann ich DLLs mit einer JAR-Datei eines Drittanbieters zur Verwendung in einer Java-Anwendung verpacken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn