2010-07-15 176 views
0

我已經安裝了Eclipse 3.5.2和JDK的Java 6爲什麼Eclipse不能在java 1.5中編譯我的代碼?

這是我在Eclipse安裝的JRE

alt text http://img806.imageshack.us/img806/3345/eclipsejres.jpg

我試圖用一個Ant構建文件進行編譯,其中一部分看上去像這樣與指定的Java 1.5:

<target name="compile" depends="build-common, init" description="Compile files. "> 
    <javac srcdir="${src_dir}" destdir="${build_dir}" debug="true" target="1.5" source="1.5"> 
     <classpath path="${tomcat_home}/lib/servlet-api.jar;${tomcat_home}/lib/log4j-1.2.15.jar;/usr/local/lib/portlet-api-1.0.jar;." /> 
    </javac> 
</target> 

但是,當我嘗試編譯,控制檯窗口顯示以下錯誤:

compile: 
    [javac] Compiling 1 source file to H:\jephperro\portlets\build 
    [javac] javac: invalid target release: 1.5 
    [javac] Usage: javac <options> <source files> 
    [javac] where possible options include: 
    [javac] -g      Generate all debugging info 
    [javac] -g:none     Generate no debugging info 
    [javac] -g:{lines,vars,source} Generate only some debugging info 
    [javac] -nowarn     Generate no warnings 
    [javac] -verbose .... 

BUILD FAILED 
H:\jephperro\portlets\CourseList-build.xml:25: Compile failed; see the compiler error output for details. 

Total time: 531 milliseconds 

Eclipse的問題是什麼?

+0

我們正在慢慢遷移到使用Eclipse編譯器,因此我們可以依賴JRE而不是完整的JDK。 – 2010-07-15 18:53:27

回答

1

see the compiler error output for details.

您可能對使用比1.5 JDK更高版本的Java編譯的庫存在依賴關係。

其實你的1.5 JDK在哪裏?我看到的只是一個JRE。我的猜測是你只需要 download a version 1.5 JDK並在Eclipse中添加。

+0

在「安裝JRE」列表中有幾個JDK。不過,我懷疑你已經把你的手指放在了這個問題上。 – 2010-07-15 18:49:57

+0

您不需要1.5 JDK來使用-target 1.5 – 2010-07-15 19:13:24

+0

爲什麼當我安裝1.6時需要安裝1.5 JDK? – 2010-07-15 19:38:13

0

您可以在您的ant構建文件中創建一個運行java -version等效項的任務,以便您瞭解由Eclipse啓動的Ant所使用的Java編譯器。

提示:您的默認JRE是1.6 JRE。這對運行代碼很好,但不適合編譯。只有JDK包含外部編譯所需的魔法(比如由ant完成)。 Eclipse通過在自己的代碼中包含一個增量Java編譯器(更具魔力)來解決這個問題。

經過多年,我還沒有完全理解Eclipse,ant和JDK是如何互操作的,所以也許你需要做一點實驗。

0

AFAIR在Ant文件運行時,Eclipse不使用自己的內部Java編譯器。檢查你的本地路徑,並嘗試找出哪個javac被Ant調用。

0

'javac:invalid target release:1.5'編譯錯誤通常是由源/二進制級別不兼容造成的。這意味着您正試圖編譯JDK 1.4或更低版本的源代碼級別的JDK 5。

Eclipse使用內置的Java編譯器。編譯器實際遵循的級別取決於項目設置。您可以配置每個項目的Java級別或將其設置爲全局級別的默認級別。

從菜單欄中選擇Window-> Preferences。選擇Java-> Compiler首選項。將編譯器符合性級別設置爲5.0。

0

正如Saifuddin和其他人提到的,這個錯誤很可能是不使用正確的Java編譯器的原因。我注意到在你安裝的JRE的JDK位於DevsuiteHome_1,並沒有說什麼版本。也許Ant正在使用它?

這很容易檢查。你在Eclipse中運行ant。 Ant有自己的配置設置,可以與您的工作區不同。要檢查Ant在運行時使用的版本,請按照以下步驟操作:

運行 - >外部工具 - >外部工具配置 - >單擊您的ant構建文件(如果您沒有運行,總是在這裏創建它) - >選擇JRE選項卡 - >驗證您正在使用的運行時間