在JDK Compliance eclipse中指定次要版本

Cod*_*der 12 java eclipse

我的JDK版本是jdk1.8.0_45,我使用eclipse中的默认JDK Compliance设置构建了一个应用程序.

但我的同事正在使用版本为jre1.8.0_20的JRE .因此,当我的应用程序在他的系统中运行时,它正在抛出一个

java.lang.UnsupportedClassVersionError Unsupported major.minor version 52.0
Run Code Online (Sandbox Code Playgroud)

如果我构建JDK合规性设置为1.7的应用程序,它显然工作正常.但我不想因为版本不匹配而失去JDK 8的所有功能.

在eclipse中,我无法设置次要版本合规级别.是否可以设置它?

或者Java是否与次要版本兼容?如果是这样,显然我不相信这个错误.

hin*_*nks 6

根据版本52.0是JDK-8.似乎它的一个Number编译成.class文件,具体取决于JDK.JDK-7有51个,JDK-6有50个等.

我会说你的同事的机器上的执行没有使用JDK/JRE 8.

尝试java -XshowSettings在你的同事电脑上运行并检查线路的输出java.class.version- 如果它将显示JDK 7 java.class.version = 51.0.


小智 1

Java 因向后兼容而闻名,这意味着您在较旧的 jdk中构建的任何应用程序都 可以较新的 jdk中运行:

在jdk1.6jdk1.7中构建应用程序在使用jdk1.8运行时可以正常工作;遗憾的是,反过来却行不通......

次要版本被视为jdk的新版本,并且确实存在兼容性问题。