Распаковка одного файла из jar дает java.util.zip.ZipException: неверный заголовок CEN (неверная подпись) - PullRequest
0 голосов
/ 19 октября 2019

У меня есть встроенный JAR-файл и я хочу извлечь из него один файл.

Однако, когда я запускаю следующую команду для извлечения одного файла из банки:

jar -xf test.jar example.txt

Я получаю следующую ошибку:

java.util.zip.ZipException: invalid CEN header (bad signature)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.zip.ZipFile.<init>(ZipFile.java:88)
at sun.tools.jar.Main.extract(Main.java:875)
at sun.tools.jar.Main.run(Main.java:236)
at sun.tools.jar.Main.main(Main.java:1149)

Другие страницы в StackOverflowс этим упоминанием ошибки jar может быть поврежден, но если я попытаюсь извлечь каждый файл:

jar -xf test.jar

Эта команда выполняется успешно без ошибок и извлекает каждый файл, поэтому яне уверен, что банка действительно повреждена.

ОБНОВЛЕНИЕ - в качестве обходного пути я могу успешно извлечь файл с помощью:

unzip test.jar example.txt

Однако, если я попытаюсь отредактировать текстовый файл и повторно добавить егок банке с:

zip test.jar example.txt

я получаю следующую ошибку:

zip warning: expected 43976 entries but found 109512

zip error: Zip file structure invalid (test.jar)

Еще более странно, что я могу успешно добавить отредактированный текстовый файл в банку с:

jar -uf test.jar example.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...