私は問題に追いついた - 私は.jar
ファイルを65k以上のエントリで作成すると、javaは "不正なまたは壊れたjarfile"と文句を言う。例:なぜJavaはたくさんのエントリを持つjarファイルについて文句を言うのですか?
$ # 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
しかし、私は少し小さいファイルを使用している場合、それが動作します:
$ jar cf app.jar {1..60000}
$ java -jar app.jar
no main manifest attribute, in app.jar
私は65Kのファイルが古い.zip
ファイル形式に制限するが、Java 7がデフォルトでZIP64を使用する必要がありますがあったことを聞きました既に。なぜこうなった?それを修正する方法はありますか?
JARは、ZIPのJavaのバリエーションです:
FWIW、ZIP64フォーマットのJARファイルの
javac
の取り扱いにバグもあります。それはいくつかの問題を修正したかもしれませんが、それは他の改善のために遅れている可能性があります。 )最初にJARにいくつかのファイルを置かないことをお勧めします; –@PeterLawrey - はい、いくつかの小さな.jarファイル間のものを分割することは明らかな回避策ですが、非常に厄介です。とにかく、ファイルの量にそのような下限を持つことは普通ではありません。多分これについてすでにバグが開いているのでしょうか? – Rogach
私はそうしたいと思いますが、見つけられない場合は、いつでも別のログに記録することができます。 –