ant - run - ¿Cómo cambio JAVA_HOME para hormiga?
how to run ant script from command line (14)
Al mirar el script de shell para invocar hormiga, es posible que el valor de $ JAVA_HOME establecido para su shell en .bashrc se pueda anular en los archivos /etc/ant.conf, $ HOME / .ant / ant.conf y $ INICIO / .antrc. Si ejecuta bash -x <path to ant script>, emitirá información de depuración que debería ayudarlo a localizar dónde $ JAVA_HOME está siendo anulado.
Estoy haciendo Java en un servidor de clase donde no tengo root. Cada vez que intento compilar usando ant, apunta al directorio incorrecto ( /usr/tomcat
lugar de /usr/tomcat/jre
).
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 cuando ejecuto hormiga?
EDITAR: echo $JAVA_HOME
apunta a /usr/tomcat/jre
echo $JAVA_HOME/bin
apunta a /usr/tomcat/jrebin
El problema es cuando normalmente corro y obtengo 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
JAVA_HOME debe señalar dónde está instalado el JDK, no un JRE.
Entonces, si escribe ls $ JAVA_HOME, ¿qué ve? si haces ls $ JAVA_HOME / bin / ¿ves javac?
Si el primero no funciona, entonces no tiene JAVA_HOME apuntando al directorio correcto. Si el segundo no funciona, debe apuntar a JAVA_HOME en un JDK en lugar de un JRE.
JAVA_HOME necesita apuntar a un hogar 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. - verifique el manual de Ant para más detalles.
Deberá cambiar la ruta JAVA_HOME al directorio Java SDK en lugar del directorio Java RE. En Windows puede hacer esto usando el comando set en el símbolo del sistema.
p.ej
establecer JAVA_HOME = "C: / Archivos de programa / Java / jdk1.6.0_14"
Puede crear su propio script para ejecutar hormiga, por ejemplo, llamado ant.sh como:
#!/bin/sh
JAVA_HOME=</path/to/jdk>; export JAVA_HOME
ant $@
y luego ejecuta tu script
$ chmod 755 ant.sh
$./ant.sh clean compile
o cualquier objetivo de hormiga que desee ejecutar
Establezca el JRE en el proyecto (propiedades del proyecto -> Ruta de compilación de Java -> Bibliotecas, por lo general, la última entrada), o predeterminado global en las preferencias (Java -> JRE instalados) en un JDK, no en un JRE.
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 sea, las clases compiladas, por lo que debe tener una correspondencia entre jdk y jre en la versión.
Establezca el env var: JAVACMD - ruta completa del ejecutable de Java. Use esto para invocar una JVM diferente a JAVA_HOME / bin / java (.exe).
Referencia: http://ant.apache.org/manual/running.html
Aunque la variable de entorno JAVA_HOME
establece correctamente, la ant
puede usar el JRE configurado dentro de cada build.xml o cualquier archivo de compilación.
Para verificar qué versión del JRE está usando la hormiga, haga clic derecho en el archivo de construcció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 del nivel del proyecto o simplemente en el nivel del espacio de trabajo.
prueba con esto:
/usr/sbin/update-alternatives --config java
Cuando usas Bash simplemente prueba esto:
$ export JAVA_HOME=/usr/tomcat/jre
En mi configuración de 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
trabajó.
Al ejecutar Ant desde el shell, no es necesario export JAVA_HOME
primero, que establecería esa variable para su shell actual y todos los comandos futuros, en su lugar use
user@host:~# JAVA_HOME=/path/to/jdk ant targets
Hay 2 formas de cambiar el compilador:
-
export JAVA_HOME=/path/to/jdk
antes de iniciar Ant. - Establecer
<javac exectuable="/path/to/javac">
Otra opción sería agregar un tools.jar
respectivo a la ruta de tools.jar
, pero esa ruta generalmente se toma si Ant 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 este artículo, por ejemplo.