2009-02-21 15 views
27

Estoy haciendo Java en un servidor de clase donde no tengo root. Cada vez que intento compilar usando hormiga, apunta al directorio incorrecto (/usr/tomcat en lugar de /usr/tomcat/jre).¿Cómo cambio JAVA_HOME para hormiga?

Una de las cosas que se nos pidió que hiciéramos al configurar nuestras cuentas de usuario fue agregar export JAVA_HOME=/usr/tomcat/jre al archivo .bashrc. No sé si se suponía que eso resolvería el problema, pero parece que no.

Entonces, ¿cómo puedo cambiar la propiedad JAVA_HOME para hormiga pero solo para cuando ejecuto hormiga?

EDIT: echo $JAVA_HOME puntos a /usr/tomcat/jre echo $JAVA_HOME\bin puntos a /usr/tomcat/jrebin

El problema es cuando normalmente se ejecutan hormiga consigo este error:

Unable to locate tools.jar. Expected to find it in /usr/tomcat/lib/tools.jar 
Buildfile: build.xml 

compile: 
    [javac] Compiling 1 source file to /home/ejm244/build/classes 

BUILD FAILED 
/home/ejm244/build.xml:9: Unable to find a javac compiler; 
com.sun.tools.javac.Main is not on the classpath. 

Perhaps JAVA_HOME does not point to the JDK 

Total time: 0 seconds 
+0

¿Tienes ANT_HOME establecido? – laz

+0

echo $ ANT_HOME no devuelve nada, probablemente no. Lo investigaré, pero cualquier información sería útil. –

Respuesta

6

JAVA_HOME debe señalar en donde el JDK no está instalado no es un JRE

Entonces, si escribe ls $ JAVA_HOME, ¿qué ve? si haces ls $ JAVA_HOME/bin/¿ves javac?

Si la primera no funciona, entonces no tiene JAVA_HOME apuntando al directorio correcto. Si el segundo no funciona, debe apuntar JAVA_HOME a un JDK en lugar de un JRE.

+0

Creo que te refieres a $ JAVA_HOME/bin/(barras diagonales) – wds

+0

ack - mis alumnos usan demasiado las ventanas :-) ¡Gracias! – TofuBeer

+1

Estás en lo correcto; sin embargo, el "ant.java".home "property * siempre * apunta a un jre porque desarrolla esa propiedad de java.lang.System (que por definición es el JRE bajo el JDK). Para establecer definitivamente el entorno de Java en ant, especifique las ubicaciones de Java usando $ { env.JAVA_HOME} con rutas exactas. – ingyhere

9

Puede crear su propia secuencia de comandos para ejecutar hormiga, p. Ej. llamado ant.sh como:

#!/bin/sh 
JAVA_HOME=</path/to/jdk>; export JAVA_HOME 
ant [email protected] 

y luego ejecuta la secuencia de comandos.

$ chmod 755 ant.sh 
$./ant.sh clean compile 

o lo que sea tarea ant desea ejecutar

+1

usando 'jre' no funcionará, no contiene las herramientas que pide la hormona –

+0

@Carlos Heuberger: de acuerdo, he corregido que –

+2

Probé esto, no afecta a JAVA_HOME –

5

En cuanto a la secuencia de comandos shell para invocar la hormiga, es posible que el valor de $ JAVA_HOME conjunto de su shell en .bashrc puede suprimirse en los archivos /etc/ant.conf, $ HOME/.ant/ant.conf, y $ HOME/.antrc. Si ejecuta bash -x < ruta al script ant >, emitirá información de depuración que debería ayudarlo a localizar dónde $ JAVA_HOME está siendo anulado.

1

JAVA_HOME necesita apuntar a una casa JDK si está intentando compilar el código. Verifique si '/ usr/tomcat/jre/bin/javac' existe. Dudo que lo haga.

Si no tiene un JDK, puede solucionarlo obteniendo la biblioteca ECJ (compilador de eclipse), soltándola en '~/.ant/lib' y agregando una propiedad del sistema a la línea de comando para usar ese compilador - consulte el manual de Ant para más detalles.

http://ant.apache.org/

+0

de la hormiga Lea ese mensaje de error con más cuidado: no se puede encontrar tools.jar. Se espera que lo encuentre en /usr/tomcat/lib/tools.jar Esto indica que JAVA_HOME es realmente/usr/tomcat en lugar de/usr/tomcat/jre. Por alguna razón, un valor incorrecto para JAVA_HOME está anulando el valor de shell. – laz

+0

@laz en realidad no importa; la causa raíz es que O P intenta usar JRE para ejecutar Ant, mientras que debería estar usando un JDK, como lo señala nbeyer – eis

1

Al utilizar Bash sólo intentar esto:

$ export JAVA_HOME=/usr/tomcat/jre 
0

Tendrá que cambiar la ruta JAVA_HOME en el directorio SDK Java en lugar del directorio de Java RE. En Windows puede hacer esto usando el comando set en el símbolo del sistema.

p. Ej.

conjunto JAVA_HOME = "C: \ Archivos de programa \ Java \ jdk1.6.0_14"

4

En la configuración de mi máquina de Windows 7:

 
JAVA_HOME="C:\Program Files\Java\jdk1.6.0_18" 

no funcionó. Pero ajuste:

 
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_18 

trabajado.

+0

. También funcionó para mí. ¡Gracias! – Alexis

1

Establezca el JRE en el proyecto (propiedades del proyecto -> Ruta de compilación de Java -> Bibliotecas, por lo general, última entrada) o predeterminado global en preferencias (Java-> JRE instalados) en un JDK, no en un JRE.

-1

java_home siempre apunta al jdk, el compilador que le dio las clases, y el jre es de la misma forma que su navegador o lo que sean las clases compiladas, por lo que debe tener correspondencia entre jdk y jre en la versión.

+1

He editado su correo electrónico por esta pregunta en meta: http://meta.stackexchange.com/questions/89965/what-to-do-when-questioner-posts-email-address-for-responses En general, esto también va para respuestas. – gary

3

Aunque la variable de entorno JAVA_HOME ajustado correctamente, el ant puede utilizar el JRE configurado dentro de la cada build.xml o cualesquiera ficheros de construcción.

Para verificar qué versión del JRE usa la hormiga, haga clic derecho en el archivo de compilación -> seleccione la hormiga de construcción que muestra los detalles sobre las tareas para elegir, etc., seleccione el JRE que desea usar.

Es aconsejable utilizar la configuración de nivel de proyecto o simplemente en el nivel del espacio de trabajo.

0

tratar con esto:

/usr/sbin/update-alternatives --config java 
0

Cuando se ejecuta la hormiga de la cáscara, que no es necesario que export JAVA_HOME primera, que fijaría esa variable para el shell actual y todos los comandos futuros, en lugar de utilizar

[email protected]:~# JAVA_HOME=/path/to/jdk ant targets 
2

Hay 2 maneras de cambiar el compilador:

  • export JAVA_HOME=/path/to/jdk antes comenzar Ant.
  • Conjunto <javac exectuable="/path/to/javac">

Otra opción sería añadir un respectivo tools.jar a la ruta de clase, pero ese camino es la dosis usual si la hormiga se inicia desde otras herramientas como Maven.

Para obtener más detalles sobre estas (u otras) opciones de cambio de Java Compiler en Ant, consulte this article por ejemplo.

Cuestiones relacionadas