- ベストアンサー
コマンドプロンプトでのJava実行エラー
コマンドプロンプトでJavaコマンドを実行(RunTest.class)を実行すると「Exception in thread"main" java.lang.UnsupportedClassVersionError: RunTest : Unsupported major.minor version 51.0」 というエラーが出てしまいます。 他のページ調べてみるとJDKとJREのバージョンが違うと発生するようなので確認してみると JDK1.7.0_09とJRE7でした。 このエラーが発生しないようにするにはどうすれば良いでしょうか? 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
クラスファイルのバージョンが51.0なら、それはJava 7では実行できますがJava 6以前では実行できません。 コマンドプロンプトで java -version を実行したらどういう結果になりますか? きっと、Java 7でない古いJavaのバージョンが表示されると思います。 ついでに echo %PATH% を実行した場合の結果も教えてください。質問文には使っているOSが書かれていないので、Windowsだと仮定しています。 解決方法は、どこかにインストールされている古いJavaを消すか、環境変数の指定で古いJavaよりもJava 7を優先することです。
その他の回答 (2)
- aton
- ベストアンサー率47% (160/334)
コンパイルする時に,javacでtargetオプションを指定してコンパイルしてはどうでしょうか。 javac -target 1.6 ソースファイル とか javac -target 1.5 ソースファイル 参考: http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html
お礼
ありがとうございました。 実行できるようになりました。
- utun01
- ベストアンサー率40% (110/270)
特に調べた訳ではありませんが、 察するにコンパイル時にはJDKを見て実行時にはJREを見ているということでしょうか。 もしそうなら、環境変数を弄って、両方JDK側を見る様にすれば解決する気がします。
お礼
ヒントをありがとうございます。 環境変数にはJDKのbinフォルダーを指定しています。これはコンパイル時のパスになるのでしょうか? 実行時のパスの指定方法はわからないのですが、ご存知でしたらご教示いただけますでしょうか? 初心者なので申し訳ございません。
お礼
仰せのとおり環境変数に古いJavaのパスが優先されていたようです。古いパスを消してJava7のパスを優先したところ実行できるようになりました。 ありがとうございました。