运行Java程序时出现UnsupportedClassVersionError



可能重复:
线程"main"java.lang.UnsupportedClassVersionError中出现异常:a(不支持的major.minor版本51.0(

我在Mac&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)

有人知道怎么解决这个问题吗?谢谢

class版本51.0由Java 7生成。

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

用于运行NetBeans的版本在NetBeans/etc/NetBeans.conf.中设置。
用于生成和运行项目的版本由项目属性设置
您可以通过Tools>Java Platforms 告诉NetBeans关于新的Java版本

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

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

一般规则是这样的。

如果采用由Java版本早于JRE的版本编译的*.类,那么它应该在该JRE中工作。因为以后的JRE应该"知道"以前版本的格式。

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


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

相关内容

  • 没有找到相关文章

最新更新