您的位置:首页 > 编程语言 > Java开发

Unsupported major.minor version (jdk版本错误)解决方案

2017-03-18 16:39 483 查看
一、错误现象:

当改变了jdk版本时,在编译java时,会遇到Unsupported major.minor version错误。

错误信息如下 :

Unsupported major.minor version 50.0

Unsupported major.minor version 49.0 (我在jdk1.4 和1.5切换时就遇到了这个错误)

Unsupported major.minor version 48.0

二、错误原因:

类似错误均属于Java版本问题,即JDK版本过低,只要选择相对应的JDK版本编译即可。

48,49,50是Java编译器内部的版本号:

Unsupported major.minor version 52.0 对应于 JDK1.8(JRE1.8)

Unsupported major.minor version 51.0 对应于 JDK1.7(JRE1.7)

Unsupported major.minor version 50.0 对应于 JDK1.6(JRE1.6)

Unsupported major.minor version 49.0 对应于 JDK1.5(JRE1.5)

Unsupported major.minor version 48.0 对应于 JDK1.4(JRE1.4)

三、出错过程:

我先描述一下我出错的过程,这样方便大家解决问题。

我用的是eclipse,在windows下调试的,是从jkd1.4升级到1.5后出现了该错误。

我是这么升级到1.5的:

(1)把在系统环境变量中把jdk的版本升级到了1.5,并在命令提示符下用 java -version 显示了一下jdk版本,是1.5的。

(2)在eclipse中 Window -> Preferences -> Java -> Compiler 然后在右侧窗口中,有个 Compiler compiance level: 就是指定jdk的版本,原来是1.4 ,现在选择5.0也就是jdk1.5。确定时弹出个对话框,提示改变了jdk版本,是否要立刻重新编译。点yes。eclipse会重新编译。【 图 1 】



(3)Project -> Properties -> Java Compiler 右侧窗口也有个 Compiler compiance level: 原来是1.4把它也改成5.0的。也会弹出对话框,同样选yes。【 图 2 】



(4)写了个Test类,执行是出现了错误:

java.lang.UnsupportedClassVersionError: 

(Unsupported major.minor version 49.0)

(5)我重启eclipse问题依旧

至此,出错过程描述完毕。

四、解决办法:

仅仅按照网上说的设置JAVA_HOME 等方案是不能解决问题的。

下面是我的解决办法:

既然环境变量中和eclipse中都设置了jdk1.5的版本,为何还报错呢。

肯定是哪个地方还有设置。

(1)Project -> Properties ->Java Build Path 右侧窗口 -> Libraries 在列表里显示的竟然还是jdk1.4(是myEclipse5自带的。) 。

(2)将jdk1.4相关条目选中,然后点右侧按钮 Remove ,将jdk1.4删除。【 图 3 】



(3)点右侧 Add Library 弹出对话框,选中jdk1.5的条目,我这里显示的是 JRE System Library 然后点击next。 【 图 4 】



(4) 在第三步弹出的对话框上,激活 Alternate JRE 选项,并在下拉列表中,选择 jdk1.5 然后点Finish。【 图 5 】



(5)在第四步完成后,从Libraries 选项卡切换到 Order and Export 选项卡,并在jar列表中选中 JRE System Library[jdk1.5] 然后 点 ok完成设置。【 图 6 】



(6)如果你的Eclipse设置成了自动编译,应该就可以了,否则重新编译一下。

五、总结

根本原因还是开发环境中 jdk 环境变量的设置。

其实在我解决的过程中还有个细节给我带来了麻烦——就是我用了MyEclipse插件,它自带个jdk1.4 所以如果你也安装了myEclipse插件,最好别用myEclipse的jdk(它带很多额外包,调试过程没问题,结果发布后会有少jar包的可能),要用自己安装的。

我遇到的问题我解决了,不知你解决了没有。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  报错 exception