我在c:/ program files / java /
中安装了JRE 1.6和1.7(以及JDK)我首先安装了1.7,然后安装了1.6。 我使用Eclipse作为我的IDE - 请注意我是Java新手。
当我想切换到1.6时,我转到“运行配置”(在Eclipse中)并选择其他JRE,选择1.6并单击“应用”。但是当我尝试运行一个简单的HelloWorld程序时,我得到了这个警告:
无法找到主类:HelloW。程序将退出。
在控制台中我遇到了这些错误:
java.lang.UnsupportedClassVersionError: HelloW : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
如果我切换回JRE 1.7,一切都会再次运作。 如何才能正确切换到1.6并使一切正常?
答案 0 :(得分:3)
您的HelloW
类编译为1.7,因此它不会在1.6上运行。您必须使用旧版本重新编译代码。
在eclipse中,您可以右键单击您的项目,然后转到“属性”,然后单击“Java编译器”。选中启用项目特定设置,并更改JDK合规性,如下所示:
答案 1 :(得分:1)
此处发生的错误是您已在java 1.7中编译该文件并尝试在java 1.7中运行它。
我建议你在将JRE改为1.6后重新编译代码文件,即重建项目然后运行项目。
根据JRE策略,如果我们在新版本上编译项目然后尝试在旧版本上运行它将无法运行并抛出主要/次要版本错误。因此,请在JRE 1.6上重新编译它,然后运行。