2010-12-06 61 views
7

我使用TeamCity的5.1.5 ..試圖建立與調用Java功能的AfterDeploy目標MSBuild項目..的TeamCity - 「Java」作爲不被識別爲一個內部或外部命令

我得到以下錯誤:「Java」作爲不被識別爲一個內部或外部命令

我在生成服務器上測試的java命令和代理服務器,它們都運行似乎command..but運行時失敗通過teamcity。

有什麼想法?

我檢查生成代理ENV VAR和他們似乎正確設置:

Environment variables defined in the agent configuration file

JAVA_HOME C:\Program Files\Java\jdk1.6.0_21

JDK_16 C:\Program Files\Java\jdk1.6.0_21

TEAMCITY_JRE C:\TeamCity\jre

我發現的唯一的事情就是java.exe的實際上是這裏的bin文件夾中沒有根文件夾。

回答

5

默認情況下,Build Agent從SYSTEM帳戶運行。 SYSTEM帳戶環境變量與您用於測試的普通帳戶不同。我懷疑java.exe不在SYSTEM帳戶的PATH中。通過向其添加JDK_HOME \ bin來調整PATH,或者將代理服務配置爲從其他帳戶運行。

請記住,在對PATH進行更改之前,您需要重新啓動構建代理服務。

+0

該路徑被添加到Windows下的用戶帳戶的環境設置。我似乎無法在任何地方手動編輯這些生成代理設置...他們似乎是預定義的其他地方。 – nologo 2010-12-07 11:06:12

1

您也可以在本地管理員帳戶下運行您的構建代理服務(由於以下原因,這可能是首選),但TeamCity中只有USER環境變量(例如PATH)被使用代理,而不是在Windows中正常的SYSTEM + USER。

所以,如果你有用戶定義的路徑,系統路徑是由代理人未知!

解決辦法,現在(認證)是用戶的路徑添加到系統路徑和刪除用戶路徑(在系統/無所謂高級系統設置/環境變量)。這裏

錯誤和(不解決爲2012-01-29): http://devnet.jetbrains.net/thread/276957

0

我們運行在一個普通用戶帳戶的代理。 Java可以在交互式會話中找到,但不能在TeamCity構建中找到。我不得不將java bin目錄添加到用戶的PATH變量中。在註銷/登錄後,可以通過TeamCity構建找到java命令。

相關問題