我在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)
有谁知道如何解决这个问题?谢谢。
答案 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版本编译。