有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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是否与次要版本兼容??如果是这样的话,我相信这种错误显然不应该发生


共 (6) 个答案

  1. # 1 楼答案

    只有当您有重大的版本更改(如从6到7或从7到8)时,才会发生此错误。它不会像您所做的那样,对小版本进行更改。错误52用于在JRE7中运行JDK8代码。因此,请仔细检查设置,并将JRE8设置为运行时环境

  2. # 2 楼答案

    不可能

    只需安装jdk1。8.0_20并在安装的JRE中选择它

  3. # 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. # 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

  5. # 6 楼答案

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

    jdk1中构建应用程序。6jdk1。7当使用jdk1运行时,将起作用。8;可悲的是,它并不能反过来工作

    小版本被视为jdk的新版本,兼容性问题确实存在