ubuntu中的java运行时错误

时间:2012-12-22 20:06:21

标签: java ubuntu runtime-error

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。请问任何人请给我关于classpath,javahome等的详细解释。我在不同的网站上遇到过这些术语但我无法清楚地说明这些。我想解释一下应该包含在类路径中的路径以及如何执行它。 谢谢。

3 个答案:

答案 0 :(得分:2)

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

运行javac -versionjava -version进行检查。然后使用which javacwhich java计算每个人的运行位置。然后显式运行Java 7,或升级以便在任何地方运行Java 7,或使用javac -source 1.6 -target 1.6 demo.java

答案 1 :(得分:1)

类路径与您的问题无关:

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

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

答案 2 :(得分:1)

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

How To find JDK/JRE version on linux