2011-02-11 11 views
6

Cuando ejecuto ant a través de Eclipse algunos objetivos son correctos, pero los que necesitan una variable de entorno específica, es decir, SOME_SDK que configuro en mi .profile el archivo no funcionará Incluso si intento hacer eco de $ {env.JAVA_HOME}, Ant a través de eclipse simplemente imprimirá esa cadena. Pero si ejecuto la hormiga a través del terminal (es decir, hormiga y objetivo), encontrará JAVA_HOME y SOME_SDK y hará eco de esos caminos. He comprobado eclipse que apunta a la misma hormiga que está en la ruta de mi entorno (/usr/share/java/ant-1.8.1). ¿Algunas ideas?Ejecutando hormiga a través de eclipse no encuentra variables de entorno, pero ejecutar hormiga a través de terminal está bien

Gracias

Respuesta

18

Cuando abre un terminal, las variables de entorno en su archivo .profile se cargan. Cuando inicia Eclipse a través del sistema de ventanas, no se está ejecutando bajo su cuenta de usuario, por lo que su perfil no está disponible para Eclipse en tiempo de ejecución.

Al menos ese es el caso en mi máquina Linux y supongo que es la misma en una Mac. Puse las variables de entorno que Eclipse necesita ver en el archivo/etc/profile, que se carga al inicio del sistema.

+3

En la Mac, eso sería '~/.MacOSX/environment.plist ', ver también http://developer.apple.com/qa/qa2001/qa1067.html –

+0

Un gran consejo sobre el sistema de ventanas leyendo el perfil al inicio - no pude entender por qué las cosas no funcionaron para mí después del cambio. – SyBer

+0

Si ha configurado las variables env después de comenzar el eclipse, entonces reinicie el eclipse. Eclipse cargará el nuevo perfil env justo cuando cierre y vuelva a abrir el cmd en Windows. – sura2k

10

Puede especificar variables en su configuración de ejecución de Ant (Ejecutar como>Ant Build ...> Medio ambiente pestaña).

+0

Gracias realmente lo vi y pude hacerlo funcionar. ¿Pero sabes por qué eclipse no recoge variables de entorno en OSX? ¿Alguna forma de eclipse para verlos? – czer

+0

Las aplicaciones iniciadas desde la GUI, como eclipse, heredan sus variables de launchctl. Puede configurar el entorno launchctl ejecutando, como root, "launchctl setenv " (Ver http://stackoverflow.com/a/3756686/218823) –

0

Lo que debe hacer es eliminar el java.exe de c: \ Windows \ System32.

La razón es que, en su variable de entorno% PATH%, incluye c: \ Windows \ System32, que tiene un archivo java.exe. Si ejecuta c:> java -version desde un símbolo del sistema, verá que la versión que está ejecutando no coincide con la versión de jdk.

Una vez que haya hecho esto, deberá agregar:% JAVA_HOME%/bin a la variable de entorno% PATH%, para que pueda ejecutar java.exe desde jdk al ejecutar aplicaciones. Asegúrese de reiniciar cualquier aplicación (incluido el símbolo del sistema) antes de esperar que recoja el cambio.

1

Estoy pensando que Eclipse está un poco mimado en el manejo del entorno, al menos en entornos * nix. Aunque similar al caso de Kevin, lo que estoy descubriendo es que aunque creo un perfil de ejecución separado y -succssfully- ejecuto los objetivos de prueba/instalación (maven en lugar de hormiga aquí, pero eso es ruido insignificante), y especifico la variable de entorno JAVA_HOME para ese perfil de ejecución, el proyecto no valida el archivo POM.

Todo lo que queda es dos opciones diferentes:

  1. utilizar el enfoque/etc/profile o
  2. Editar archivo eclipse.ini incluyendo la propiedad del sistema allí.

Creo que este último es una solución más limpia, ya que afecta a un archivo de configuración que es solo para la aplicación problemática después de todo. Sin embargo, Eclipse debería usar las variables que se encuentran en la ruta del usuario y dejarnos a gusto para producir :)

Cuestiones relacionadas