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$ 

我确定没有设置类路径。谁能给我关于类路径,javahome 等的详细解释。我在各个站点都遇到了这些术语,但我无法清楚地理解它们。我想解释一下应该包含在类路径中的路径以及如何去做。谢谢你。

4

3 回答 3

2

不,我认为这不是类路径问题。我认为您的版本更可能javac是版本 7,而是java版本 6。

运行javac -versionjava -version检查。然后找出你从哪里运行每个,使用which javacwhich java。然后要么显式运行 Java 7,要么升级以便在任何地方运行 Java 7,或者使用javac -source 1.6 -target 1.6 demo.java

于 2012-12-22T20:08:31.573 回答
1

类路径与您的问题无关:

问题是,您使用另一个编译器 (javac) 编译了 java 源代码作为您想要尝试运行代码的 JVM (java)。

看起来 javac 发出了您的 JVM 无法解释的类文件。

于 2012-12-22T20:08:25.463 回答
1

在 JDK 版本 7 上编译的 Java 类无法使用 JRE 版本 6 或低于 7 的任何版本执行。尝试查找系统上安装的 JDK 和 JRE 版本。如需更多帮助,请参阅:

如何在 linux 上查找 JDK/JRE 版本

于 2012-12-22T20:15:26.717 回答