Emballage des DLL dans des fichiers JAR
Vous avez acquis une bibliothèque JAR tierce fournie avec deux fichiers DLL correspondants. Votre application Java s'appuie sur cette bibliothèque et vous cherchez à fusionner tous les composants (votre code, le JAR tiers et les DLL) dans un seul fichier JAR pratique.
Emballage des DLL
Emballage des DLL
Les fichiers JAR fonctionnent essentiellement comme des archives ZIP. Pour inclure des DLL dans votre JAR, placez-les simplement n'importe où dans sa structure. Cependant, il ne suffit pas de simplement empaqueter les DLL. Avant de les utiliser, vous devez les extraire du JAR et les enregistrer dans un emplacement désigné sur votre disque dur.
Exemples de code
// 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()); }
Voici un exemple de bloc de code Java qui démontre ce processus :
Dans ce code, les DLL sont extraites dans le répertoire temporaire spécifié par "path", puis chargées en mémoire à l'aide de Système.load(). Gardez à l’esprit que vous devrez peut-être ajuster les chemins exacts des fichiers et des ressources en fonction de votre structure JAR spécifique et des emplacements des DLL.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!