Ungültiger LOC-Header(Bad Signature) Fehler in Java
- Ungültiger LOC-Header (schlechte Signatur) in Java
- Löschen Sie das lokale Repository
-
Löschen Sie die beschädigte
jar
-Datei - Validieren Sie die MD5- und SHA1-Prüfsummen
Dieses Tutorial demonstriert Javas Fehler ungültiger LOC-Header (schlechte Signatur)
.
Ungültiger LOC-Header (schlechte Signatur) in Java
Der Fehler invalid LOC header (bad signature)
tritt immer dann auf, wenn eine jar
-Datei in unserem lokalen Maven-Repository beschädigt ist. Das lokale Repository ist die heruntergeladene Datei aus einem Maven-Projekt in unserem Dateisystem.
Jedes von Maven heruntergeladene Element enthält seine MD5- und SHA1-Dateien.
Der Zweck dieser MD5- und SHA1-Dateien besteht darin, die Originalität und Integrität der Originaldateien sicherzustellen. Da der Fehler in Netzwerken und Dateisystemen auftreten kann, können diese Prüfsummendateien auch beschädigt werden, sodass sie nicht mit dem Original übereinstimmen.
Normalerweise tritt in dieser Situation der Fehler ungültiger LOC-Header (schlechte Signatur)
auf. Nachfolgend finden Sie Szenarien und Lösungen für diesen Fehler.
Löschen Sie das lokale Repository
Wie aus dem Namen hervorgeht, müssen wir das gesamte lokale Repository löschen und ein neues Maven-Projekt erstellen. Dadurch werden alle Maven-Repository-Dateien entfernt, die Projektdateien erneut heruntergeladen und der Cache gelöscht.
Der folgende Befehl kann das Repository löschen.
rm -rf ${LOCAL_REPOSITORY}
Wir können das lokale Repository in der Datei settings.xml
angeben. Der Standardpfad für das lokale Repository ist ${user.home}/.m2/repository
.
Löschen Sie die beschädigte jar
-Datei
Wenn wir die beschädigte jar
-Datei finden, können wir sie löschen und das Problem wird gelöst. Der Maven-Ausgabestapelbefehl kann uns das beschädigte jar
anzeigen, wenn es nicht verarbeitet werden kann.
Wir können die Protokollierung aktivieren, indem wir ein -X
in den Build-Befehl einfügen.
mvn -X package
Der obige Befehl zeigt die beschädigte jar
-Datei in einer Protokolldatei an. Wir können diese jar
-Datei im Maven-Repository finden und löschen.
Der Maven lädt die Datei beim Erstellen erneut herunter. Die Integrität des Archivs kann mit dem Befehl zip -T
getestet werden.
find ${LOCAL_REPOSITORY} -name "*.jar" | xargs -L 1 zip -T | grep error
Validieren Sie die MD5- und SHA1-Prüfsummen
Die beiden oben genannten Lösungen können den Maven dazu bringen, die jar
-Dateien erneut herunterzuladen. In diesen Fällen kann derselbe ungültige LOC-Header
beim zukünftigen Download auftreten.
Wenn Sie Maven so konfigurieren, dass die MD5- und SHA1-Prüfsummen validiert werden, während das Element aus dem Remote-Repository heruntergeladen wird, wird der Fehler ungültiger LOC-Header
verhindert.
Die Optionen –strict-checksums
oder -C
werden dem Maven-Befehl hinzugefügt, was dazu führt, dass Maven den Build fehlschlägt, wenn die Prüfsummen nicht mit dem Wert der Prüfsummendateien übereinstimmen.
Dies kann auf zwei Arten erfolgen, um den Build fehlschlagen zu lassen oder ihn zu warnen; Die Warnoption ist die Standardeinstellung. Verwenden Sie den folgenden Befehl, um fehlzuschlagen oder zu warnen.
-C,--strict-checksums
-c,--lax-checksums
Da Maven die Signaturdateien benötigt, während die Artefakte in das Repository hochgeladen werden, befinden sich möglicherweise Artefakte im Repository, die keine Signaturdateien enthalten. Aus diesem Grund ist die Warnoption die Standardeinstellung.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn FacebookVerwandter Artikel - Java Error
- Adresse wird bereits verwendet JVM_Bind-Fehler in Java
- Android Java.Lang.IllegalStateException behoben: Methode der Aktivität konnte nicht ausgeführt werden
- Ausnahme im Hauptthread Java.Lang.ClassNotFoundException in IntelliJ IDEA
- Ausnahme im Hauptthread Java.Lang.NoClassDefFoundError
- Beheben Sie das Problem, dass Java nicht installiert werden kann. Es gibt Fehler in den folgenden Schaltern
- Beheben Sie den Fehler `Es wurde keine Java Virtual Machine gefunden` in Eclipse