线程“main”中的exceptionjava.lang.UnsupportedClassVersionError:a(Unsupported major.minor version 51.0)
可能重复:
不受支持的主要.minor版本51.0
我安装了JDK7,一个简单的hello word程序得到编译,但是当我运行这个时,我得到了下面的exception。
Exception in thread "main" java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0) at java.lang.ClassLoader.defineClass0(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)
我在命令提示符处检查了java -version
,它显示Java版本1.4.2_03,但是当我尝试从java.com安装新的java版本时,它说我推荐了Java 7版本。
将PATH设置的内容复制到记事本中,并检查1.4.2的位置是否在7的位置之前。如果是这样,请在PATH设置中删除1.4.2的path并保存。
保存并应用“环境variables”后closures并重新打开cmd行。 在XP中,path不会反映在已经运行的程序中。
从命令行尝试使用sudo update-alternatives --config java
来设置要使用的JRE的版本。 这应该解决它。
假设你正在使用Eclipse,在MAC上你可以:
- 启动
Eclipse.app
- select
Eclipse -> Preferences
- select
Java -> Installed JREs
- 点击
Add...
button - select
MacOS X VM
作为JREtypes。 按下一步。 - 在“JRE Home:”字段中,input
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
- 您应该在标题为“JRE系统库:”的列表中看到系统库
- 给JRE一个名字。 推荐的名称是
JDK 1.7
。 点击完成。 - 选中刚刚创build的JRE条目旁边的checkbox。 这将导致Eclipse将其用作所有新Java项目的默认JRE。 点击OK。
- 现在,创build一个新的项目。 对于此validation,从菜单中select
File -> New -> Java Project
。 - 在出现的对话框中,input您的项目的新名称。 对于此validation,请键入Test17Project
- 在对话框的JRE部分,select
Use default JRE (currently JDK 1.7)
- 点击完成。
希望这可以帮助
在安装了Java 6之后的jdk7之后,我遇到了这个问题。使用update-alternatives --config java
正确更新了二进制文件到jdk7,但$JAVA_HOME
环境variables仍然指向Java 6的旧目录。
听起来就像你需要改变你的java
可执行文件的path来匹配最新版本。 基本上,安装最新的Java并不一定意味着你的机器被configuration为使用最新版本。 你没有提到任何平台的细节,这就是我所能说的。