java.lang.UnsupportedClassVersionError
いつも使っているのとは異なるPCでEclipse(Version: 3.4.0)を使ってJavaを動かそうとしたら,下のような例外が出て,動かなかった.
java.lang.UnsupportedClassVersionError: Bad version number in .class file
Oracle Technology Network for Java Developersによれば,
Java 仮想マシンがクラスファイルを読み込もうとして、 ファイル内のメジャーおよびマイナーのバージョン番号がサポートされていないと判断した場合にスローされます。
つまり,コンパイラによって作られたJavaのクラスファイルのバージョンとJavaVMのバージョンの違いが原因らしい.
設定を確認したら,コンパイラの方は1.6で*1,JavaVMの方は1.5だった*2.
どっちかのバージョンに統一するか,JavaVMの方を高いバージョンにすれば良いと思ったので,試してみた.
- コンパイラー準拠レベルを1.6,JavaVM 1.5,動かない.
- コンパイラー準拠レベルを1.6,JavaVM 1.6,動いた.
- コンパイラー準拠レベルを1.5, JavaVM 1.5,動いた.
- コンパイラー準拠レベルを1.5,JavaVM 1.6,動いた.
予想通りの挙動である.