Maison >Java >javaDidacticiel >Comment puis-je regrouper les dépendances DLL avec mon code Java dans un seul fichier JAR ?

Comment puis-je regrouper les dépendances DLL avec mon code Java dans un seul fichier JAR ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-24 18:58:11917parcourir

How Can I Package DLL Dependencies with My Java Code into a Single JAR File?

Emballage de fichiers JAR avec des dépendances DLL

La tâche à accomplir consiste à créer un seul fichier JAR contenant votre code, les fichiers JAR tiers et les dépendances DLL qui les accompagnent. . Cette question a retenu l'attention, en particulier avec la bibliothèque SWT comme exemple.

La solution réside dans le regroupement du tout dans le fichier JAR. Cependant, une mise en garde importante existe : avant d'utiliser les DLL, vous devez les extraire du JAR et les stocker sur le disque dur. Si vous ne le faites pas, vous ne pourrez pas y accéder.

Pour clarifier davantage, lors du regroupement de DLL ou d'autres fichiers dans un JAR, le processus est analogue à la création d'une archive ZIP. Incluez simplement les fichiers nécessaires dans la structure JAR.

À titre d'illustration, considérons l'extrait de code Java suivant :

// ...
static {
    logger.info("Loading DLL");
    try {
        System.loadLibrary(ACWRAPPER);
        logger.info("DLL is loaded from memory");
    } catch (UnsatisfiedLinkError e) {
        loadFromJar();
    }
}

private static void loadFromJar() {
    // we need to put both DLLs to temp dir
    String path = "AC_" + new Date().getTime();
    loadLib(path, ACWRAPPER);
    loadLib(path, AAMAPI);
    loadLib(path, LIBEAU);
}

private static void loadLib(String path, String name) {
    // ...
}
// ...

Ce code démontre l'extraction de DLL d'un JAR, leur placement dans un répertoire temporaire et chargement ultérieur en mémoire. En comprenant ce processus, vous pouvez créer efficacement des fichiers JAR qui englobent tous les composants nécessaires, y compris les dépendances 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!

Déclaration:
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