Emballage de fichiers JAR tiers avec des dépendances DLL
Q : J'ai une bibliothèque Java qui nécessite deux fichiers DLL et mon propre programme Java qui utilise cette bibliothèque. Comment puis-je combiner tous les composants dans un seul fichier JAR qui inclut à la fois mon code, le JAR tiers et les DLL ?
R : Pour créer un fichier JAR intégrant des dépendances DLL :
Dans le domaine de l'emballage, les DLL et autres fichiers sont traités de la même manière que les fichiers d'une archive ZIP. Vous pouvez utiliser le code Java suivant pour extraire des DLL d'un 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(); } } }
N'oubliez pas que l'empaquetage de DLL ou d'autres fichiers dans un JAR est aussi simple que l'empaquetage de fichiers dans une archive ZIP. La démonstration de code fournie utilise une structure de fichier ZIP pour extraire les DLL d'un JAR.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!