UnsupportedClassVersionErrorが出たときの対処法
今日、とある環境でJavaを実行しようとしてUnsupportedClassVersionErrorというエラー
がでてしまいました。対処法をメモしておきます。
UnsupportedClassVersionErrorを調べたところ、
public class UnsupportedClassVersionError extends ClassFormatError Java Virtual Machine が、クラスファイルの読み込み中に、そのファイルのメジャーバージョン番号とマイナーバージョン番号がサポートされていないと判定した場合にスローされます。
とのことです。
これはJava VMのバージョンに対してできあがったクラスファイルのバージョンのほうが新しいので実行できないために起こるようです。(私の環境は現在Java1.5です)
よって、1.3など、Java VMが対応しているバージョンを指定してコンパイルすれば大丈夫です。
以下のようにコンパイル時に-source 1.3 -target 1.3を指定し、(1.3はバージョン)
としてコンパイルしたところ実行できました。
////////////////////////////////////////////////
注意点 (私がはまったポイント)
◆-targetのみだとエラーになる
D:\Data\Java\FrameTest>javac -target 1.3 hoge.java
javac: ターゲットリリース 1.3 がデフォルトのソースリリース 1.5 と競合しています。
◆-sourceも指定すると大丈夫
D:\Data\Java\FrameTest>javac -source 1.3 -target 1.3 hoge.java
参考:http://report.station.ez-net.jp/software/sun/java/sdk.asp