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