在MyEclipse中运行任何控制台的程序JVM都会出现上述问题,并报如下错误:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
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$100(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)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Exception in thread "main"
Web项目还可以跑,但里面所有的main()方法一运行就会出现上述错误。
昨天运行时还一切都正常,但今天就出现了这样的问题。所以不可能是环境变量的设置出现了错误,而且我也检查过环境变量的设置,没有问题。
请高手解释一下原因,帮忙给个解决的方法。谢谢!
原因:高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件格式不同。
1、首先打开MyEclipse,在该页面中,点击打开主菜单中的Windows选项。
2、然后在弹出来的窗口中点击打开“Proferences”选项。
3、然后在弹出来的窗口中点击打开“java compiler”选项。
4、然后在弹出来的窗口中将编译器的JDK版本改为1.7的。如果安装的jre是1.6的则将这个改为1.6,根据自身的版本将JDK和JRE的版本改为一致。
因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误。因为,高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件格式不同。这样,低版本的JVM无法解释执行这个.class文件,会抛出Could not find the main class.program will exit不支持的Class版本错误。
解决方法:
1、点击myeclipse上方菜单中的Window选项后弹出的子菜单中的“Preferences”选项进入preferences配置界面。
2、进入preferences配置界面后依次进入Java—>Installed JREs查看jdk版本,可以看到这个是1.7版本的。
3、接下来进入Java—>Compiler将编译器的JDK版本改为1.7的。如果你的安装的jre是1.6的则将这个改为1.6,根据自身的版本将JDK和JRE的版本改为一致。
4、改为一致后点击下方的“OK”选项确定保存即可。
本回答被网友采纳