Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Membungkus DLL dengan Fail JAR Pihak Ketiga untuk Digunakan dalam Aplikasi Java?

Bagaimanakah Saya Boleh Membungkus DLL dengan Fail JAR Pihak Ketiga untuk Digunakan dalam Aplikasi Java?

Susan Sarandon
Susan Sarandonasal
2024-11-25 21:51:12718semak imbas

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

Membungkus DLL dalam Fail JAR

Anda telah memperoleh pustaka JAR pihak ketiga yang disertakan dengan dua fail DLL yang sepadan. Aplikasi Java anda bergantung pada pustaka ini dan anda berusaha untuk menggabungkan semua komponen (kod anda, JAR pihak ketiga dan DLL) ke dalam satu fail JAR yang mudah.

Membungkus DLL

Fail JAR pada asasnya berfungsi seperti arkib ZIP. Untuk memasukkan DLL dalam JAR anda, hanya letakkannya di mana-mana sahaja dalam strukturnya. Walau bagaimanapun, hanya membungkus DLL tidak mencukupi. Sebelum menggunakannya, anda mesti mengekstraknya daripada JAR dan menyimpannya ke lokasi yang ditetapkan pada pemacu keras anda.

Contoh Kod

Berikut ialah blok kod Java teladan yang menunjukkan proses ini:

// 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());
}

Dalam kod ini, DLL diekstrak ke direktori sementara yang ditentukan oleh "path" dan kemudian dimuatkan ke dalam memori menggunakan System.load(). Perlu diingat, anda mungkin perlu melaraskan laluan fail dan laluan sumber yang tepat berdasarkan struktur JAR dan lokasi DLL khusus anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membungkus DLL dengan Fail JAR Pihak Ketiga untuk Digunakan dalam Aplikasi Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn