3
jagadeesh@jagadeesh-PC:~$ cd Programs
jagadeesh@jagadeesh-PC:~/Programs$ javac demo.java
jagadeesh@jagadeesh-PC:~/Programs$ java demo
Exception in thread "main" java.lang.UnsupportedClassVersionError: demo : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: demo. Program will exit.
jagadeesh@jagadeesh-PC:~/Programs$ echo $CLASSPATH

jagadeesh@jagadeesh-PC:~/Programs$ 

クラスパスが設定されていないと確信しています。classpath、javahome などについて詳しい説明を教えてください。いろいろなサイトでこれらの用語に出会いましたが、明確に理解できませんでした。クラスパスに含めるべきパスとその方法について説明していただきたいです。ありがとうございました。

4

3 に答える 3

2

いいえ、クラスパスの問題ではないと思います。javacバージョン 7 である可能性が高いと思いますが、javaバージョン 6 です。

実行javac -versionjava -versionて確認します。which javac次に、 と を使用して、それぞれをどこから実行しているかを調べますwhich java。次に、Java 7 を明示的に実行するか、どこでも Java 7 を実行するようにアップグレードするか、javac -source 1.6 -target 1.6 demo.java

于 2012-12-22T20:08:31.573 に答える
1

JDK バージョン 7 でコンパイルされた Java クラスは、JRE バージョン 6 またはそれより前のバージョンを使用して実行することはできません。システムにインストールされている JDK と JRE の両方のバージョンを探してみてください。詳細については、次を参照してください。

Linux で JDK/JRE のバージョンを確認する方法

于 2012-12-22T20:15:26.717 に答える
1

クラスパスはあなたの問題とは何の関係もありません:

問題は、コードを実行しようとする JVM (java) として別のコンパイラ (javac) を使用して Java ソース コードをコンパイルしたことです。

javac は、JVM で解釈できないクラス ファイルを出力しているようです。

于 2012-12-22T20:08:25.463 に答える