java.io.IOException: invalid constant type: 15
Seasar2のプロジェクトのJavaをJava8にした所、
java.lang.RuntimeException: java.io.IOException: invalid constant type: 15
が発生しました。
原因
SeaSar2はJava8に対応していない部分があるらしいです。
今回のエラーを引き起こした具体的犯人は「javassist-3.4.ga.jar」でした。
こいつをJava8に対応するバージョンにしないと上記のエラーが発生するようです。
対処
javassistのJava8対応バージョンのjavassist-3.20.0-GAをゲットしました。
こいつをビルドパスに追加した所、エラーなく正常動作しました。
関連
Java8に対応していないjavassistを使用すると、
java.lang.RuntimeException: java.io.IOException: invalid constant type:18
というエラーが発生する可能性があります。
Java8で追加されたラムダ式とかを使用する時に発生するらしいです。
こいつもjavassistをjavassist-3.20.0-GAにしてやれば発生しなくなります。
まとめ
java.lang.RuntimeException: java.io.IOException: invalid constant type: 15
または
java.lang.RuntimeException: java.io.IOException: invalid constant type:18
が出たら、犯人はjavassist。
ディスカッション
コメント一覧
まだ、コメントがありません