2010-03-31 53 views
1

我使用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。

回答

2

这不是关于编译器 - 它只是关于库!转到项目的属性,然后在Java Build Path/Libraries下,删除JRE System库。然后使用添加库...来添加所需的JRE库的版本。

+0

我已经这样做了,正如原文中所述。 “...在我的项目构建路径中引用该系统库。” – user26270 2010-03-31 14:13:16

+0

@ codeman73:不知何故,该类的Java 6版本似乎优先于您的类路径。如果您已经只引用了一个JRE库,那么请确保JRE已在Eclipse Preferences中正确设置,位于已安装的JRE下:使用“编辑...”并查看是否存在对来自Java 6 JRE。然后尝试清理该项目。 – 2010-03-31 15:25:41

+0

安装有些奇怪。我从一个名为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

相关问题