-4

可能重复:
线程“主”java.lang.UnsupportedClassVersionError 中的异常:a(不支持的 major.minor 版本 51.0)

我在 Mac 和 Windows 上运行的 Java 程序不工作。相反,我收到此错误:

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)

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

4

3 回答 3

3

类版本 51.0 由 Java 7 生成。

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

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

于 2013-01-17T19:11:59.323 回答
0

一般规则是这样的。

如果采用由比 JRE 更早的 Java 版本编译的 *.class,它应该在该 JRE 中工作。因为后来的 JRE 应该“知道”以前版本的格式。

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


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

于 2013-01-18T03:35:07.850 回答
0
Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(

看来您的 java 运行时版本与编译时版本不同(较低)版本。

于 2013-01-17T18:50:34.953 回答