2010-12-06 16 views
7

estoy usando TeamCity 5.1.5 .. tratando de construir un proyecto de MSBuild con un objetivo AfterDeploy el que llama a una función java ..TeamCity - 'java' no se reconoce como un comando interno o externo

me sale el siguiente error: 'java' no se reconoce como un comando interno o externo

He probado el comando java en el servidor de compilación y los servidores de agentes y todos ejecutan el comando ... pero parece que falla al ejecutar a través de teamcity.

¿Alguna idea?

He comprobado los VARs env agente de compilación y parecen configurar correctamente:

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

la única cosa que noto es que el java.exe son en realidad en las carpetas bin aquí no la carpeta raíz.

Respuesta

5

Build Agent se ejecuta desde la cuenta SYSTEM de forma predeterminada. Las variables del entorno de cuenta del sistema difieren de su cuenta normal que ha utilizado para probar. Sospecho que java.exe no está en PATH para la cuenta SYSTEM. Ajuste la RUTA añadiéndole JDK_HOME \ bin o configurando el servicio del Agente para que se ejecute desde una cuenta diferente.

Recuerde que debe reiniciar el servicio del agente de compilación antes de que los cambios a PATH surtan efecto.

+0

La ruta se agrega a la configuración del entorno de la cuenta de usuario en Windows. No puedo encontrar ningún lugar para editar manualmente las configuraciones del Agente de compilación en ningún lado ... parecen estar predefinidas en otro lugar. – nologo

+1

Puede anular la RUTA a través del archivo buildAgent.properties definiendo la propiedad system.PATH o especificando el entorno personalizado para esta configuración de compilación a través de la IU de TeamCity, consulte la documentación para obtener detalles. ECHO PATH desde su script de compilación para verificar el valor real utilizado, compruebe si se puede invocar java.exe con este valor PATH. – CrazyCoder

+6

Recuerde que necesita reiniciar el servicio de agente de compilación antes de que los cambios a PATH surtan efecto –

1

También puede ejecutar su servicio de agente de compilación bajo una cuenta de administrador local (esto puede preferirse por varias razones), pero hay un error en TeamCity donde solo las variables de entorno USER (por ejemplo, la RUTA) agente, no SYSTEM + USER como es normal en Windows.

De modo que si tiene una ruta definida para el usuario, el agente desconoce las rutas del sistema.

La solución provisional ahora (verificada) es agregar la ruta del usuario a la ruta del sistema y eliminar la ruta del usuario (en Sistema/Configuración avanzada del sistema/Variables de entorno).

Bug aquí y un (no resuelto a partir del 2012-01-29): http://devnet.jetbrains.net/thread/276957

0

Nos corren el agente bajo una cuenta de usuario normal. Java se puede encontrar en una sesión interactiva, pero no en las compilaciones de TeamCity. Tuve que agregar el directorio java bin a la variable PATH del usuario. Después de cerrar sesión/iniciar sesión, las compilaciones de TeamCity podrían encontrar el comando java.

Cuestiones relacionadas