Emballage de 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
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
Voici un exemple de bloc de code Java qui illustre ce processus :
// 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()); }
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 System.load(). Gardez à l’esprit que vous devrez peut-être ajuster les chemins d’accès exacts aux fichiers et aux ressources en fonction de votre structure JAR spécifique et des emplacements des DLL.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3