我使用Eclipse 3.3。在我的项目中,我将编译器合规性级别设置为5.0在项目的构建路径中。我在Installed JREs部分添加了Java 1.5 JDK,并在我的项目构建路径中引用了该System Library。但是,对于实现PreparedStatement的类,由于没有实现只存在于Java 1.6 PreparedStatement中的抽象方法,我得到编译错误。具体而言,方法为什么Eclipse不会使用我为我的项目指定的编译器?
setAsciiStream(int, InputStream, long) and
setAsciiStream(int, InputStream)
奇怪的是,它在我们针对它最初编写的Java 1.4进行编译时工作。我们为Java 1.4添加了JRE并引用了项目中的系统库,并将项目的编译器级别设置为1.4,并且工作正常。但是,当我做相同的更改以尝试指向Java 5.0时,它将使用Java 6.
任何想法为什么?
我写了一个类似的问题早,在这里:
how do I get eclipse to use a different compiler version for Java?
我知道你应该如何选择不同的编译器,但它似乎Eclipse是不采取它。虽然我已经删除了所有可以找到的Java 6 JDK和JRE,但它似乎是Java 6的默认设置。我也更新了我的eclipse.ini中的-vm选项以指向Java5 JDK。
我已经这样做了,正如原文中所述。 “...在我的项目构建路径中引用该系统库。” – user26270 2010-03-31 14:13:16
@ codeman73:不知何故,该类的Java 6版本似乎优先于您的类路径。如果您已经只引用了一个JRE库,那么请确保JRE已在Eclipse Preferences中正确设置,位于已安装的JRE下:使用“编辑...”并查看是否存在对来自Java 6 JRE。然后尝试清理该项目。 – 2010-03-31 15:25:41
安装有些奇怪。我从一个名为java_ee_sdk-5_03-windows.exe的文件安装了它,但是在安装过程中,在安装程序的最终摘要页面上,在开始安装之前,它列出了Product:Java Platform,Enterprise Edition 5 SDK,但是然后它下面列出了Java 2 SDK,标准版6.0。这是正常的,还是我只是混淆了所有不同的版本号?我假设J2EE 5将使用JDK 5而不是JDK 6. – user26270 2010-03-31 17:50:55