Maison > Java > javaDidacticiel > Comment puis-je empaqueter des DLL avec un fichier JAR tiers pour les utiliser dans une application Java ?

Comment puis-je empaqueter des DLL avec un fichier JAR tiers pour les utiliser dans une application Java ?

Susan Sarandon
Libérer: 2024-11-25 21:51:12
original
744 Les gens l'ont consulté

How Can I Package DLLs with a Third-Party JAR File for Use in a Java Application?

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());
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal