Unsupported major.minor version XX.0エラー

Javaを実行していると、java.lang.UnsupportedClassVersionErrorのようなエラーが表示されることがある。これは、実行中のJVMがサポートしていないJava class versionをロードしようとした場合に発生する。

エラーの発生原因

コンパイル済みのJavaバイトコードが、コンパイル時のバージョンより低いJREバージョンで実行されると発生する。

Javaバージョンごとに表示されるエラーVersion番号

Versionの後ろの数字は、次のようなバージョンを意味する。

  • J2SE 8 = Version 52
  • J2SE 7 = Version 51
  • J2SE 6.0 = Version 50
  • J2SE 5.0 = Version 49
  • JDK 1.4 = Version 48
  • JDK 1.3 = Version 47
  • JDK 1.2 = Version 46
  • JDK 1.1 = Version 45

確認事項

エラーが発生した実行Javaのバージョン情報を確認する。

$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

解決方法

解決方法は次のとおりである。

  • 実行バージョンに合わせて再コンパイルする。下位バージョン向けにコンパイルすると、ソースコードエラーが発生することがある。
  • 実行Javaバージョン(JRE)を上位バージョンに変更して実行する。

参考

http://dwfox.tistory.com/25