Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Membungkus DLL dengan Fail JAR Pihak Ketiga untuk Digunakan dalam Aplikasi Java?
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!