Error de encabezado LOC no válido(firma incorrecta) en Java

Sheeraz Gul 20 junio 2023
  1. Encabezado LOC no válido (firma incorrecta) en Java
  2. Eliminar el repositorio local
  3. Eliminar el archivo jar dañado
  4. Valide las sumas de verificación MD5 y SHA1
Error de encabezado LOC no válido(firma incorrecta) en Java

Este tutorial demuestra el error de encabezado LOC no válido (firma incorrecta) de Java.

Encabezado LOC no válido (firma incorrecta) en Java

El error encabezado LOC no válido (firma incorrecta) ocurre cada vez que un archivo jar en nuestro repositorio Maven local está dañado. El repositorio local es el archivo descargado de un proyecto Maven en nuestro sistema de archivos.

Cada elemento que descargó Maven viene con sus archivos MD5 y SHA1.

El propósito de estos archivos MD5 y SHA1 es garantizar la originalidad e integridad de los archivos originales. Dado que el error puede ocurrir en redes y sistemas de archivos, estos archivos de suma de comprobación también pueden corromperse, haciendo que no coincidan con el original.

Por lo general, el error encabezado LOC no válido (firma incorrecta) ocurre en esta situación. Hay escenarios y soluciones para este error que se detallan a continuación.

Eliminar el repositorio local

Como queda claro por el nombre, debemos eliminar todo el repositorio local y crear un nuevo proyecto Maven. Esto eliminará todos los archivos del repositorio de Maven, descargará los archivos del proyecto nuevamente y eliminará el caché.

El siguiente comando puede eliminar el repositorio.

rm -rf ${LOCAL_REPOSITORY}

Podemos especificar el repositorio local en el archivo settings.xml. La ruta predeterminada para el repositorio local es ${user.home}/.m2/repository.

Eliminar el archivo jar dañado

Si encontramos el archivo jar dañado, podemos eliminarlo y el problema se solucionará. El comando de la pila de salida de Maven puede mostrarnos el jar dañado cuando no se procesa.

Podemos habilitar el registro poniendo una -X en el comando de compilación.

mvn -X package

El comando anterior indicará el archivo jar dañado en un archivo de registro. Podemos encontrar ese archivo jar en el repositorio de Maven y eliminarlo.

El Maven volverá a descargar el archivo al compilar. La integridad del archivo se puede probar usando el comando zip -T.

find ${LOCAL_REPOSITORY} -name "*.jar" | xargs -L 1 zip -T | grep error

Valide las sumas de verificación MD5 y SHA1

Las dos soluciones anteriores pueden hacer que Maven vuelva a descargar los archivos jar. En estos casos, el mismo encabezado LOC no válido puede ocurrir en la descarga futura.

La configuración de Maven para validar las sumas de verificación MD5 y SHA1 mientras se descarga el elemento del repositorio remoto evitará el error de “encabezado LOC no válido”.

Las opciones –strict-checksums o -C se agregan al comando Maven, lo que hará que Maven falle en la compilación cuando las sumas de verificación no coincidan con el valor de los archivos de suma de verificación.

Esto se puede hacer de dos maneras, para fallar la compilación o para advertirla; la opción de advertencia es la predeterminada. Use el siguiente comando para fallar o advertir.

-C,--strict-checksums

-c,--lax-checksums

Debido a que Maven requiere los archivos de firma al cargar los artefactos en el repositorio, es posible que haya artefactos en el repositorio que no tengan los archivos de firma; es por eso que la opción de advertencia es la predeterminada.

Sheeraz Gul avatar Sheeraz Gul avatar

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 Facebook

Artículo relacionado - Java Error