- ベストアンサー
javacとjavaのバージョン違い
失礼致します。 コマンドラインからclassファイルを実行しようとしています。 しかし、実行したところ「java.lang.UnsupportedClassVersionError」というエラーが出ます。コンパイラとjavaのバージョンは次の通りです。 C:\work>javac -J-version java version "1.4.2_12" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_12-b03) Java HotSpot(TM) Client VM (build 1.4.2_12-b03, mixed mode) C:\work>java -version java version "1.3.1_01" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01) Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode) このため、バージョンを一致させる必要があるかもしれません。 ですが、あるプロジェクトに関わっており、バージョンを変更するのは容易ではありません。何か、バージョンを変更する以外でよい方法はございますでしょうか? また、バージョンをいじるならどちらを合わせるべきでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1の補足に, > C:\work>javac -target 1.3.1 > javac: 1.3.1 は無効な VM バージョンです。 とあるのですが, http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/tooldocs/win32/javac.html によれば,-target の引数は '1.3' とすべきではないでしょうか? また,質問文に, > また、バージョンをいじるならどちらを合わせるべきでしょうか? とありますが,No.1の補足に > javaの方を1.4.2で動作させる方を考えたほうがよろしいでしょうか? と書かれている通り,Java VM のほうを1.4.2にそろえるほうがいいと思います。Javaは基本的に下位互換性が保たれているので,Java VM 1.3で動くバイドコードは,たいていは Java VM 1.4 上でも動作します。
その他の回答 (1)
javacの-targetオプションを使用してはいかがでしょうか?
補足
ご回答ありがとうございました。 早速、指摘して頂いた通り行いました。 C:\work>javac -target 1.3.1 javac: 1.3.1 は無効な VM バージョンです。 もしjavacが1.5でjavaが1.4のバージョンならこの方法でうまくいったと思うのですが、今回は駄目でした。 javaの方を1.4.2で動作させる方を考えたほうがよろしいでしょうか? 同様な方法を探してみます。