2010-04-06 45 views
0

我在Windows XP機器上安裝ant,並按照Apache's manual site的說明操作。它說設置JAVA_HOME,所以我查了一下,看到沒有名爲JAVA_HOME的環境變量,發一個,並將其設置爲「C:\ Program Files \ Java \ jdk1.6.0_19」安裝螞蟻;明顯誤解JAVA_HOME

當我嘗試運行ant調試,但是,它告訴我,JAVA_HOME目前設置爲「C:\ Program Files \ Java \ jre6」

我猜JAVA_HOME不是一個環境變量。但如果它不是一個,我就不知道從哪裏開始尋找它。有人知道嗎?

編輯:哦,是的 - 它也是buging我tools.jar以及,但我猜,當我修復JAVA_HOME問題,這將有助於終端找到tools.jar。或者,也許我錯了。謝謝

+0

是,一旦你的JAVA_HOME是正確的,在JDK點,它會找到的tools.jar。 – 2010-04-06 01:25:12

+1

我發現調試這個問題難以容忍,所以簡單的把tools.jar放在Ant期望找到的地方。有時投降是最好的政策。 – 2010-04-06 01:59:42

+0

你知道嗎?我早些時候正在考慮同樣的事情,但我害怕在工作電腦上試用它。感謝您的建議。現在工作正常。 – StormShadow 2010-04-06 02:39:05

回答

5

繼Newtopian的建議,您可以快速確認,如果該行爲是在終端

C:\>set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_19 
C:\>ant debug 

同時運行的問題,我不知道,如果你輸入的文本到JAVA_HOME環境變量的字面意思是「C:\ Program Files \ Java \ jdk1.6.0_19」,即帶引號,但如果是這樣,你應該刪除引號,因爲它們會拋出ant.bat。

下面是ant.bat

:checkJava 
set _JAVACMD=%JAVACMD% 

if "%JAVA_HOME%" == "" goto noJavaHome 
if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome 
if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java.exe 
goto checkJikes 

:noJavaHome 
if "%_JAVACMD%" == "" set _JAVACMD=java.exe 

... omitted ... 

"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS% 

相關位。如果沒有幫助,您可以發佈您的調試任務?


兩個選項,使其永久化:

  1. 運行以下命令:

    C:\>REG delete HKCU\Environment /V JAVA_HOME 
    C:\>REG delete HKLM\Environment /V JAVA_HOME 
    C:\>REG add HKCU\Environment /V JAVA_HOME /d "C:\Program Files\Java\jdk1.6.0_19"

(基本上,確保你只有一個JAVA_HOME設置,它是正確的,可以肯定的在這樣做後關閉並重新打開終端)

  1. 如果一切都失敗了,蹩腳的批處理文件的解決方案:

    @echo off 
    set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_19 
    ant %*

保存爲ant_wrapper.bat(或其他),你應該能夠做到ant_wrapper debug

(這兩種解決方案是未經測試)

+0

這個伎倆! 雖然我不確定如何使設置「棒」。每次打開新的終端窗口時,我都必須重置它。 噢,還有其他人這樣做的一個快速提示:如果在所有其他方面看起來不錯的時候出現BUILD FAILED,請檢查並確保在運行ant install時模擬器不會睡着或變暗。我花了十分鐘才弄明白。 :-) – StormShadow 2010-04-06 02:08:11

+0

@stormshadow看到我的編輯如上 – ig0774 2010-04-06 02:20:36

+1

哦,如果你作爲非管理員用戶運行,你可能不得不跳過REG刪除HKLM行,批處理文件可能是唯一的解決方案。 – ig0774 2010-04-06 02:24:54

3

確保您檢查用戶和系統範圍環境變量。我不確定這裏的優先級是什麼,但最有可能的是你只檢查一個,並在那裏創建它,而另一個則被它覆蓋。

另外,當您創建環境變量時,請確保您打開新的命令行界面以使更改生效。然後嘗試「設置」,該列表將列出剛剛創建的命令提示符在環境中看到的所有環境變量。

如果一切都很好,但Ant仍然看不到正確的,那麼檢查啓動ANT的批處理文件,如果javahome沒有設置。如果確定它使用環境變量並且不嘗試並再次設置它。

希望這有助於

+0

是的,跑了一陣,果然它給了我JAVA_HOME的錯誤值。不幸的是,我不是這臺機器的管理員,所以我不知道。我想我必須每次或通過命令行設置它。 – StormShadow 2010-04-06 02:11:27