-1

重複の可能性:
サポートされていない major.minor バージョン 49.0

JDK 7をインストールしたばかりで、Windows 7を使用しています。コンパイルして実行する単純な「hello world」を取得しようとしています。これは、どこかからコピーしたものです。まだやってます。既に PATH を設定しました。javac を使用すると、エラーが発生せずにコンパイルされると思いますが、実行しようとすると、次のようになります。

Exception in thread "main" java.lang.UnsupportedClassVersionError: apples : Unsu
pported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: apples.  Program will exit.

それが役立つかどうかはわかりませんが、ここで何が起こっているのかを知っている人に感謝します.

Java バージョン "1.6.0_31" Java(TM) SE ランタイム環境 (ビルド 1.6.0_31-b05) Java HotSpot(TM) 64 ビット サーバー VM (ビルド 20.6-b01、混合モード)

javac 1.7.0_04

4

2 に答える 2

1

この回答はおそらく冗長ですが、問題は、プログラムの実行に使用しているJVMが、インストールしたばかりの Java 7 JVM ではないことです。それは古いものであり、実行するように要求した (Java 7) .class ファイルを理解していません。

java -versionGreg Hewgill は、あなたがandを実行することを提案しましたjavac -version。これらは、実際に実行しているJavaのバージョンを示します...実行していると思うバージョンとは異なります。

解決策は、(おそらく)%PATH%古い Java インストールを現在指している を更新することです。


からの出力java -versionjavac -version質問に追加した出力は、Java 7 でコンパイルし、Java 6 で実行していることを意味します。それが間違いなく問題の原因です。変数を修正%PATHして、同じツールセットでコンパイルおよび実行できるようにします。(それが最も簡単な解決策です...)

于 2012-05-06T03:32:23.907 に答える
1

jdk6を使用して実行し、jdk7をコンパイルしていることがわかります.jdk7を反映するようにパス/クラスパス設定を変更する必要があります

于 2012-05-06T03:36:03.610 に答える