运行Java程序时出现UnsupportedClassVersionError

时间:2013-01-17 18:49:54

标签: java netbeans

  

可能重复:
  Exception in thread “main” java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0)

我在Mac上运行的Java程序Windows无法运行。相反,我得到了这个错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: menus/Main_Screen : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

有谁知道如何解决这个问题?谢谢。

3 个答案:

答案 0 :(得分:3)

类版本51.0由Java 7生成。

您正在尝试使用早期版本运行,可能是Java 6。 您需要调用java命令的Java 7版本。

用于运行NetBeans的版本在NetBeans / etc / netbeans.conf中设置 用于构建和运行项目的版本由项目属性设置 您可以通过Tools>告诉NetBeans有关新Java版本的信息。 Java平台

答案 1 :(得分:0)

Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(

您的Java运行时版本似乎与编译时版本不同(较低)版本。

答案 2 :(得分:0)

一般规则就是这样。

如果使用由Java EARLIER版本编译的* .class而不是JRE,它应该在该JRE中工作。 因为后来的JRE应该“知道”以前版本的格式。

如果使用由Java LATER版本编译的* .class而不是JRE,则它不应该在该JRE中工作。 因为早期的JRE不应该知道格式的未来版本。


在您的情况下,代码只是由JRE版本之后发布的Java版本编译。