Maison >Java >javaDidacticiel >Pourquoi mon fichier JAR génère-t-il une erreur « java.lang.SecurityException : résumé de fichier de signature invalide » et comment puis-je la corriger à l'aide du plugin Maven Shade ?

Pourquoi mon fichier JAR génère-t-il une erreur « java.lang.SecurityException : résumé de fichier de signature invalide » et comment puis-je la corriger à l'aide du plugin Maven Shade ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-03 12:12:411026parcourir

Why Does My JAR File Throw a

Comprendre l'erreur « Fichier de signature non valide » dans l'exécution du JAR

Lors de l'exécution d'un fichier JAR qui utilise une bibliothèque externe, telle qu'un château gonflable, vous pouvez rencontrer le problème suivant erreur :

Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

Pour résoudre ce problème, il est nécessaire de comprendre la cause première. Cette erreur se produit généralement lorsque le fichier JAR contient des fichiers de signature non valides ou non reconnus par la machine virtuelle Java (JVM).

Solution pour les utilisateurs de Maven-Shade-Plugin

Pour ceux qui tentent de créer un uber-JAR ombré à l'aide du plugin maven-shade-plugin, la solution consiste à exclure des fichiers de signature spécifiques du processus d'empaquetage. Vous pouvez y parvenir en ajoutant les lignes suivantes à la configuration de votre plugin dans le fichier POM.xml :

<filters>
    <filter>
        <artifact>*:*</artifact>
        <excludes>
            <exclude>META-INF/*.SF</exclude>
            <exclude>META-INF/*.DSA</exclude>
            <exclude>META-INF/*.RSA</exclude>
        </excludes>
    </filter>
</filters>

En excluant ces fichiers de signature spécifiques, vous autorisez la JVM à les ignorer lors de la vérification, résolvant ainsi le problème invalide. erreur de signature.

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