2010-12-06 17 views
7

を認識していない私はチームシティー5.1.5を使用しています。.. Java関数を呼び出すAfterDeployターゲットとのMSBuildプロジェクトを構築しようとしている。..チームシティー - 「javaのは」は、内部コマンドまたは外部コマンドとして

私が取得次のエラー: 'java'が内部コマンドまたは外部コマンドとして認識されない

ビルドサーバーとエージェントサーバーでjavaコマンドがテストされており、すべてコマンドを実行していますが、実行中に失敗するようですチームシップを通じて

私は、ビルドエージェントのenv VARSをチェックしましたし、彼らはセットアップ正しく思える

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が、ここでのビンのフォルダではないルートフォルダに実際にあるということです。

答えて

5

ビルドエージェントは、デフォルトでSYSTEMアカウントから実行されます。 SYSTEMアカウント環境変数は、テストに使用した通常のアカウントとは異なります。私は、java.exeがSYSTEMアカウントのPATHにないと思われます。 JDK_HOME \ binを追加してPATHを調整するか、エージェントサービスを別のアカウントから実行するように設定します。

PATHへの変更が有効になる前に、ビルドエージェントサービスを再起動する必要があることに注意してください。

+0

パスは、Windowsの下のユーザーアカウントの環境設定に追加されます。どこでも手動でビルドエージェントの設定を編集する場所を見つけることはできません。どこかであらかじめ定義されているようです。 – nologo

+1

buildAgent.propertiesファイルでPATHを上書きするには、system.PATHプロパティを定義するか、TeamCity UIを使用してこのビルド構成のカスタム環境を指定します。詳しくは、ドキュメントを参照してください。ビルドスクリプトのEcho PATHを使用して実際の値を確認し、java.exeをこのPATH値で呼び出すことができるかどうかを確認します。 – CrazyCoder

+6

PATHへの変更が有効になる前にビルドエージェントサービスを再起動する必要があることを覚えておいてください。 –

1

ローカル管理者アカウントでビルドエージェントサービスを実行することもできます(いくつかの理由で優先されるかもしれませんが)。TeamCityには、USER環境変数(PATHなど)のみが使用されます。エージェントではなく、WindowsではSYSTEM + USERと同じです。

したがって、ユーザーのパスが定義されている場合、システムパスはエージェントによって認識されません。

システムパスにユーザーパスを追加し、ユーザーパス(システム/ Avancedシステム設定/環境変数の下)を削除することで、すぐに解決できます。

ここにバグと(2012年1月29日の時点で解決していない): http://devnet.jetbrains.net/thread/276957

0

我々は、通常のユーザーアカウントでエージェントを実行します。 Javaは、対話型セッションでは見つかりますが、TeamCityビルドでは見つかりません。私は、ユーザーのPATH変数にjava binディレクトリを追加する必要がありました。ログオフ/ログイン後、TeamCityビルドでjavaコマンドを見つけることができます。

関連する問題