2013-02-26 39 views
12

我無法運行我的Ant build.xml,因爲我已更新到java 1.7.0_52(或那裏)。我一直在我的Windows 7筆記本電腦上通過Eclipse本地運行它多年 - 但是這個最新的jave jdk更新有些不同(?)。Ant「JAVA_HOME不指向JDK」 - 但它的確如此

BUILD FAILED 
C:\workspace\WaterAspectsModel3\build.xml:329: Unable to find a javac compiler; 
com.sun.tools.javac.Main is not on the classpath. 
Perhaps JAVA_HOME does not point to the JDK. 
It is currently set to "D:\Morten\Java\jdk1.7.0_52" 

這是我的jdk!所以JAVA_HOME指向一個jdk(從錯誤消息中也可以看出)。我的路徑中一直有我的JAVA_HOME和bin文件夾。我配置了Eclipse - 外部工具配置 - JRE指向相同的D:\ Morten \ Java \ jdk1.7.0_52(通過「Separate JRE」設置)。而且我嘗試了許多其他配置 - 都沒有運氣。

我一直在閱讀這裏和其他地方的名單上的答案噸,認爲我已經嘗試了所有的建議。大多數似乎是JAVA_HOME實際上指向jre的情況,只需要糾正爲jdk或「;」在路徑或類似的東西。這些似乎都不適用於我的情況。

有什麼建議嗎?

+0

你有你的ANT_HOME環境變量集嗎?它是否也在'PATH'中?這是系統路徑。 – 2013-02-26 20:15:36

+0

如何從你可愛的cmd.exe打印出'java -version'和'javac -version'?還有'JAVA_HOME'在那裏告訴你什麼? – sjas 2013-02-26 20:20:25

+0

嘗試'ant -version'。 – 2013-02-26 20:21:11

回答

4

真正的信息是Ant找不到com.sun.tools.javac.Main

其中,最新的「Sun」(Oracle)JDK是1.7.0_13(或者可能是_14,但絕對不是您安裝目錄所指的「_52」),這讓我覺得你是不使用Ant可識別的分佈。您可以通過運行jar tvf $JAVA_HOME/lib/tools.jar並查找該類來驗證此情況。

Ant Manual討論如何使用不同的編譯器。由於我只使用過「Sun」編譯器,所以恐怕我不能給你任何指示。


編輯:你也可以嘗試在你的構建文件中設置fork="yes"。這應該運行編譯器可執行文件,而不是試圖調用編譯器類。

+4

它更有可能是JAVA_HOME變量指向JRE而不是JDK。有兩種Java發行版,只有「Java開發工具包」包含** javac **命令和開發人員使用的其他有用的二進制文件 – 2013-02-26 20:50:23

+1

@ MarkO'Connor - 儘管OP聲稱多次檢查過,所以我看到沒有理由否則,'tools.jar'的存在(或不存在)將是強有力的證據。讓我覺得它可能是別的東西的是安裝目錄的版本號。 – parsifal 2013-02-26 20:59:03

+0

謝謝parsifal!我還沒到那裏,但「jar tvf tools.jar」清楚地表明這是一個來自完全不同項目的tools.jar。只需卸載並重新安裝我的jdk。 – 2013-02-26 20:59:57

0

嘗試將JAVA_HOME\bin添加到您的env PATH

+0

沒有運氣 - 相同的消息(...雖然具有完全相同的路徑?) – 2013-02-26 20:14:03

+6

不,'JAVA_HOME'應該是你的'jdk'文件夾,bin路徑應該在你的'PATH'環境變量中。 – 2013-02-26 20:14:26

+0

@SotiriosDelimanolis我已編輯我的答案 – 2013-02-26 20:16:57

24

我在通過Eclipse運行ANT時遇到了相同的消息。

什麼工作對我來說:

  1. 在Eclipse中,進入菜單: 「窗口 - >首選項」;
  2. 在樹上訪問「Ant - > Runtime」;
  3. 訪問Classpath選項卡;
  4. 展開「全局條目」項目;
  5. Inside Global Entries,tools.jar的路徑錯誤。它指向Java的一個較老的版本;
  6. 我刪除了錯誤的條目,並添加了正確的「添加外部罐子」按鈕。有效。

enter image description here

+0

謝謝 - 它爲我工作。 tools.jar條目丟失。我弄明白了 – 2016-09-06 11:52:06

6

解決方案 「Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext」 從here是偉大的樂於助人,爲我工作。

0

將JAVA_HOME添加到Eclipse-Preferences-Java-Build Path-Classpath變量中。

相關問題