Tugas di tangan melibatkan mencipta satu fail JAR yang mengandungi kod anda, fail JAR pihak ketiga dan kebergantungan DLL yang disertakan bersamanya . Soalan ini telah mendapat perhatian, terutamanya dengan perpustakaan SWT sebagai contoh.
Penyelesaian terletak pada pembungkusan semuanya bersama-sama dalam fail JAR. Walau bagaimanapun, kaveat penting wujud: sebelum menggunakan DLL, anda mesti mengekstraknya daripada JAR dan menyimpannya pada cakera keras. Kegagalan berbuat demikian akan menghalang anda daripada mengaksesnya.
Untuk menjelaskan lebih lanjut, apabila membungkus DLL atau fail lain ke dalam JAR, prosesnya adalah serupa dengan mencipta arkib ZIP. Hanya masukkan fail yang diperlukan dalam struktur JAR.
Sebagai ilustrasi, pertimbangkan coretan kod Java berikut:
// ... static { logger.info("Loading DLL"); try { System.loadLibrary(ACWRAPPER); logger.info("DLL is loaded from memory"); } catch (UnsatisfiedLinkError e) { loadFromJar(); } } private static void loadFromJar() { // we need to put both DLLs to temp dir String path = "AC_" + new Date().getTime(); loadLib(path, ACWRAPPER); loadLib(path, AAMAPI); loadLib(path, LIBEAU); } private static void loadLib(String path, String name) { // ... } // ...
Kod ini menunjukkan pengekstrakan DLL daripada JAR, peletakan dalam direktori sementara, dan pemuatan seterusnya ke dalam memori. Dengan memahami proses ini, anda boleh mencipta fail JAR dengan berkesan yang merangkumi semua komponen yang diperlukan, termasuk kebergantungan DLL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membungkus Ketergantungan DLL dengan Kod Java Saya ke dalam Fail JAR Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!