Rog*_*ach 13 java zip scala jar java-7
我偶然发现了以下问题 - 当我创建.jar超过65k条目的文件时,java会抱怨"无效或损坏jarfile".例:
$ # in fresh dir
$ for i in {1..70000}; do touch $i; done
$ jar cf app.jar {1..70000}
$ java -jar app.jar
Error: Invalid or corrupt jarfile app.jar
Run Code Online (Sandbox Code Playgroud)
但如果我使用少量文件,它的工作原理如下:
$ jar cf app.jar {1..60000}
$ java -jar app.jar
no main manifest attribute, in app.jar
Run Code Online (Sandbox Code Playgroud)
我听说旧.zip文件格式有65k文件限制,但Java 7默认情况下应该使用ZIP64.为什么会这样?有办法解决吗?
Ste*_*n C 14
为什么会这样?
这是Java 1.7.0(又名Java 7)中的一个错误
显然,在Java 1.7.0 p40或更高版本中已修复.
有办法解决吗?
根据错误报告,解决方法(对于Java 1.7.0)是在不使用该-jar选项的情况下启动应用程序.
FWIW,javac处理ZIP64格式的JAR文件时也存在一个错误: