Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Membungkus Ketergantungan DLL dengan Kod Java Saya ke dalam Fail JAR Tunggal?

Bagaimanakah Saya Boleh Membungkus Ketergantungan DLL dengan Kod Java Saya ke dalam Fail JAR Tunggal?

Barbara Streisand
Barbara Streisandasal
2024-11-24 18:58:11917semak imbas

How Can I Package DLL Dependencies with My Java Code into a Single JAR File?

Membungkus Fail JAR dengan Ketergantungan DLL

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!

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