project.properties に
maven.jar.index=true
として jar ファイルにインデックスを付けていた場合,MANIFEST.MF の Class-Path エントリが読まれない.
maven で作成された jar ファイルに対して
$ java -jar hoge.jar
としても,Class-Path エントリに書いているクラスのロード時に NoClassDefFoundError.
で,原因が java コマンドなのか,maven が作る jar なのかを確認しようと思い,JarIndex が付加されていない (動作確認済み) の jar ファイルに
$ jar -i hoge.jar
としようと思ったら,
java.util.zip.ZipException: 指定されたファイルが見つかりません。 at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.<init>(ZipFile.java:112) at java.util.jar.JarFile.<init>(JarFile.java:127) at java.util.jar.JarFile.<init>(JarFile.java:65) at sun.tools.jar.Main.getJarPath(Main.java:794) at sun.tools.jar.Main.getJarPath(Main.java:810) at sun.tools.jar.Main.getJarPath(Main.java:810) at sun.tools.jar.Main.genIndex(Main.java:828) at sun.tools.jar.Main.run(Main.java:196) at sun.tools.jar.Main.main(Main.java:904)
となる.なぜ?