Beheben des Fehlers „Ungültige Signaturdatei“ bei der Jar-Ausführung
Beim Versuch, ein als .jar gepacktes Java-Programm auszuführen, kann der Fehler bei Benutzern auftreten „java.lang.SecurityException: Ungültiger Signaturdatei-Digest für Manifest-Hauptattribute.“ Dieser Fehler tritt normalerweise auf, wenn die .jar-Datei eine externe Bibliothek wie Hüpfburg verwendet.
Die Hauptursache für diesen Fehler liegt im Signaturüberprüfungsprozess der Java Virtual Machine (JVM). Die JVM überprüft die Signatur der in der .jar-Datei enthaltenen Manifestdatei, um deren Authentizität und Integrität sicherzustellen. Wenn die verwendete Bibliothek jedoch eine eigene Signatur enthält, kann es zu Konflikten mit dem Verifizierungsprozess der JVM kommen.
Eine mögliche Lösung für dieses Problem, die besonders für diejenigen relevant ist, die Maven-Shade-Plugin zum Erstellen von Uber-Jars verwenden, ist: Signaturdateien vom Schattierungsprozess ausschließen. Durch das Hinzufügen der folgenden Zeilen zur Plugin-Konfiguration werden die Signaturdateien ausgeschlossen und der Fehler behoben:
<filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters>
Durch den Ausschluss von Signaturdateien aus dem Uber-JAR wird der Konflikt mit dem Verifizierungsprozess der JVM vermieden. und das Programm wird ohne den Fehler „Ungültige Signaturdatei“ ausgeführt.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „java.lang.SecurityException: Ungültiger Signaturdatei-Digest' in meiner JAR-Datei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!