java.util.zip.ZipException: 無効な格納ブロック長に遭遇しました。
スタック トレースは次のとおりです。
Caused by: java.util.zip.ZipException: invalid stored block lengths
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at java.util.Properties$LineReader.readLine(Unknown Source)
at java.util.Properties.load0(Unknown Source)
at java.util.Properties.load(Unknown Source)
これは、プロジェクトがアップグレードしようとしたときに発生します。アップグレード ロジックは、古い jar ファイルを新しいものに置き換えることであり、JVM は引き続き実行されます。
jar ファイル (jarA.jar) にはプロパティ ファイルが含まれており、プロパティ ファイルにはいくつかの完全なクラス名が記録されています。これらのクラス名は、リフレクションによってインスタンスを作成するために使用されます。アップグレード ロジックは、SystemClassLoader.getResourceAsStream() を使用してプロパティ ファイルをロードしようとします。
jar ファイル (jarA.jar) を新しいものに置き換え、プロパティの内容を変更すると、この例外が発生します。SystemClassLoader がプロパティを正しくロードできないようです。
プロジェクトは java1.4 でコンパイルされ、jre1.7 で実行され、OS は Windows です。
プロパティが存在するときに SystemClassLoader がロードに失敗した理由を説明できる人はいますか? 私はあなたの助けに感謝します。