java在JDK Compliance eclipse中指定次要版本
我的JDK版本是jdk1。8.0_45我在eclipse中使用默认的JDK合规设置构建了一个应用程序
但是我的同事有一个JRE版本jre1。8.0_20。因此,当我的应用程序在他的系统中运行时,它会抛出一个
java.lang.UnsupportedClassVersionError Unsupported major.minor version 52.0
如果我在构建应用程序时将JDK compliance设置为1.7,它显然可以正常工作。但我不想仅仅因为版本不匹配就失去JDK 8的所有功能
在eclipse中,我无法设置次要版本的遵从性级别。可以设定吗
或者Java forward是否与次要版本兼容??如果是这样的话,我相信这种错误显然不应该发生
# 1 楼答案
只有当您有重大的版本更改(如从6到7或从7到8)时,才会发生此错误。它不会像您所做的那样,对小版本进行更改。错误52用于在JRE7中运行JDK8代码。因此,请仔细检查设置,并将JRE8设置为运行时环境
# 2 楼答案
不可能
只需安装jdk1。8.0_20并在安装的JRE中选择它
# 3 楼答案
您应该指定运行时“执行环境”版本依赖项,而不是特定的java版本
对于插件,在清单中。mf,指定执行环境:JavaSE-1.8
对于普通java项目,在“Build Path…->;Configure BuildPath”中,转到“Libraries”,然后选择“Add Library”、“JRE System Library”、“Execution Environment”并选择JavaSE-1.8。 删除路径上的任何其他JRE
这对eclipse来说,找到一个Java>;=1.8合规JRE
# 4 楼答案
下载JRE 1.8.0_20
然后将
JRE 1.8.0_20
指定给EclipseIDE,类似这样:然后重新构建应用程序
(你的问题不是bug:http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8124517)
# 5 楼答案
根据this版本52.0是JDK-8。似乎这是一个编入了。根据JDK对文件进行分类。JDK-7有51个,JDK-6有50个等等
我要声明的是,在你的collegue机器上执行时没有使用JDK/JRE 8
试着在你的同事电脑上运行
java -XshowSettings
,检查java.class.version
行的输出——如果是JDK 7,它将显示java.class.version = 51.0
# 6 楼答案
Java以向后兼容而闻名,这意味着在较旧的jdk中构建的任何应用程序都可以在较新的jdk中运行:
在jdk1中构建应用程序。6或jdk1。7当使用jdk1运行时,将起作用。8;可悲的是,它并不能反过来工作
小版本被视为jdk的新版本,兼容性问题确实存在