Membungkus Fail JAR Pihak Ketiga dengan Ketergantungan DLL
S: Saya mempunyai perpustakaan Java yang memerlukan dua fail DLL dan program Java saya sendiri yang menggunakan perpustakaan ini. Bagaimanakah saya boleh menggabungkan semua komponen ke dalam satu fail JAR yang merangkumi kedua-dua kod saya, JAR pihak ketiga dan DLL?
J: Untuk mencipta fail JAR yang menggabungkan kebergantungan DLL:
Dalam bidang pembungkusan, DLL dan fail lain diperlakukan sama seperti fail dalam arkib ZIP. Anda boleh menggunakan kod Java berikut untuk mengekstrak DLL daripada JAR:
import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; public class ExtractDLLs { public static void main(String[] args) { String jarPath = "path/to/my.jar"; String outputDirectory = "path/to/output"; try (ZipFile jarFile = new ZipFile(jarPath)) { Enumeration<? extends ZipEntry> entries = jarFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); if (entry.isDirectory()) { continue; } if (entry.getName().endsWith(".dll")) { InputStream in = jarFile.getInputStream(entry); OutputStream out = new FileOutputStream(new File(outputDirectory, entry.getName())); byte[] buffer = new byte[1024]; int len; while ((len = in.read(buffer)) > 0) { out.write(buffer, 0, len); } in.close(); out.close(); } } } catch (IOException e) { e.printStackTrace(); } } }
Ingat, membungkus DLL atau fail lain ke dalam JAR adalah semudah membungkus fail ke dalam arkib ZIP. Demonstrasi kod yang disediakan menggunakan struktur fail ZIP untuk mengekstrak DLL daripada JAR.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membungkus Aplikasi Java dengan Fail JAR Pihak Ketiga dan Ketergantungan DLL ke dalam JAR Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!