2010-11-12 145 views
6

我注意到Eclipse IDE(對於Java,版本3.5.1)使用它自己的java編譯器,但是我找不到如何更改它。它甚至有可能嗎?如何爲Eclipse IDE設置Eclipse以外的eclipse Java編譯器

也許這是有點微不足道的,但經過多年使用IntelliJ IDEA後,我發現返回Eclipse有點尷尬。

謝謝。

更新:由於要求更詳細的解釋,我正在這樣做。

因此,最近我幫助了一些Java開發人員,並注意到他使用的Eclipse不是Sun的JDK。由於我們公司範圍內只使用Sun的JDK,我發現它很奇怪。

看來他只有Eclipse,並且不需要用於編譯java代碼(如javac)的其他工具。這是因爲Eclipse捆綁了自己的編譯器(有關更多詳細信息,請參閱this)。

本身我覺得這個功能相當不錯,我相信這有很好的理由。但我希望我們所有的公司開發人員使用相同的編譯器來生成Java字節碼(.class文件)。並在相同的JVM中運行。只是爲了儘可能保持統一的環境並消除其他特定環境問題。在Eclipse中指定JRE沒有問題。

但我未能找到如何將默認Java編譯器更改爲javac。另一方面,我的主要IDE IntelliJ IDEA允許這樣做(在javac,jikes或eclipse編譯器之間進行選擇)。所以我只想知道在Eclipse中是否有可能。

此外:

  • 沒有。我與Eclipse編譯器本身沒有真正的問題,這是根本的物質能夠選擇。
  • 我知道Apache Ant和其他解決方案可以用來編譯任何編譯器的Java代碼。但在這裏我對Eclipse及其集成項目建設感興趣(例如項目菜單下的菜單項)。
+1

你能描述什麼是尷尬嗎? – 2010-11-12 10:00:46

+0

你有什麼具體問題嗎? – Nivas 2010-11-12 10:01:08

+0

重新回到Eclipse的尷尬(我在很久以前使用它幾年)是一個不同的主題,讓我們關注主要問題。但總的來說,我發現Eclipse的配置不是微不足道的,也不是非常透明。 – Ralkie 2010-11-12 13:16:03

回答

4

你想擁有什麼?如果你想擁有由Sun編譯器創建的類,可以使用Ant構建它們。 Eclipse使用自己的編譯器,因爲Sun的編譯器不是用於自動編譯的環境。

JDT website

增量Java編譯器。作爲Eclipse構建器實施,它基於VisualAge for Java編譯器演變而來的技術。特別是,它允許運行和調試仍包含未解決錯誤的代碼。

請記住,對於庫本身,Eclipse仍然會使用Sun編譯器中的一個,它可以使用另一個答案(NimChimpsky和The Elite)解釋的過程來設置。

+0

謝謝,但我不明白如何設置編譯器選擇不同的JRE的。我更新了我的問題,也許這會更清楚我的意思。 – Ralkie 2010-11-12 12:58:34

+0

好的......那個更新現在答案更容易。 **沒有..它不能完成** – nanda 2010-11-12 13:05:30

+0

謝謝,那會的。 – Ralkie 2010-11-12 13:23:35

0

右鍵單擊項目>屬性> Java編譯器

+0

是的,我找到了這種形式,但據我瞭解它更多的一些額外的編譯選項,但不是關於設置不同的Java編譯器實現(javac)。 – Ralkie 2010-11-12 13:02:52

2

這是如何添加你自己的JDK/JRE:

  • 轉到Windows - >Preferences菜單。
  • 在「首選項」窗口中,在左側的下拉列表中選擇JavaInstalled JREs
  • 點擊Add bitton(在右邊),選擇Standard VM,然後出現一個對話框,標題爲Add JRE
  • JRE home:字段中,單擊directory按鈕並瀏覽至您的JRE/JDK根文件夾。一旦選定,它會自動完成並點擊完成。

完成後,返回到Preferences窗口,並勾選添加的JRE/JDK的單選按鈕以使其成爲默認值。

希望這會有所幫助。

+0

這個改變jdk的路徑,不是編譯器(ecj) – 2010-11-12 10:00:05

+0

@ J-16 SDiZ,是真的,但問題不明確,你不能改變Eclipse編譯器,但你可以讓你的代碼用Oracle JDK編譯。 – 2010-11-12 10:10:20

+2

謝謝,但設置JRE真的與編譯有關嗎?至少我曾經認爲Sun的JRE包沒有包含javac的工具(這就是爲什麼我們有JRE和JDK,這是不一樣的)。 – Ralkie 2010-11-12 13:09:07

1

雖然我也在尋找這個,但我發現的唯一解決方案是使用Maven。使用maven-compiler-plugin你可以指定編譯器使用,並且eclipse將委託給它。我希望類似的技巧可以爲基於Ant的項目完成。

  <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <compilerId>javac</compilerId> 
       <encoding>${project.build.sourceEncoding}</encoding> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>org.codehaus.plexus</groupId> 
        <artifactId>plexus-compiler-javac</artifactId> 
        <version>1.6</version> 
       </dependency> 
      </dependencies> 
     </plugin> 

dp4jmaventest是一個使用此配置的工作演示。

Bug 341842是針對此類支持的Eclipse功能請求。