一尘不染

如何使eclipse为Java使用不同的编译器版本?

java

似乎这应该是一个简单的任务,它具有“首选项”菜单中用于不同JRE的选项,并且能够为每个项目设置不同的编译器和构建路径。但是,这似乎也根本行不通。

例如,我将JAVA_HOME设置为Java 1.6的jre。我仍然不清楚Eclipse如何使用此功能,但是它似乎是默认设置,并且未采用项目替代。我还安装了Java 1.5,并在Eclipse的Java-> Installed JREs部分中为此添加了一个JRE。

在我的项目中,我将编译器的遵从性级别设置为1.5。在项目的构建路径中,我添加了Java 1.5 JRE的系统库。但是,由于没有实现仅在Java 1.6 PreparedStatement中存在的抽象方法,实现了PreparedStatement的类遇到了编译错误。具体来说,方法

setAsciiStream(int, InputStream, long) and 
setAsciiStream(int, InputStream)

奇怪的是,当我们针对最初为它编写的Java 1.4进行编译时,它可以工作。我们添加了Java 1.4的JRE,并在项目中引用了该系统库,并将项目的编译器级别设置为1.4,并且运行良好。但是,当我进行相同的更改以尝试指向Java 1.5时,它改而使用1.6。

有什么想法吗?


阅读 630

收藏
2020-03-20

共1个答案

一尘不染

从菜单栏中:项目->属性-> Java编译器

启用项目特定设置(选中)取消选中“从执行环境中使用合规性’…。选择所需的”编译器合规性级别”

这样您就可以使用“ 1.6” JDK来编译“ 1.5”代码。

如果您想正式使用1.5 JDK来生成“ 1.5”兼容代码,请安装合适的1.5 JDK并通过以下方法告诉eclipse:

窗口->首选项->已安装的JRE

然后回到您的项目

项目->属性-> Java构建路径->库

删除1.6系统库,然后:添加库…-> JRE系统库->备用JRE->您想要的JRE。

验证正确的JRE位于项目的构建路径上,保存所有内容并享受乐趣!

2020-03-20