java - dist - how to run ant script from command line
Ant está usando la versión incorrecta de Java (15)
Acabo de tener este problema, sucedió porque primero había agregado el archivo de compilación a la vista antis cuando el JRE predeterminado era 1.6.
No había ningún JRE específico del proyecto y cambié el valor predeterminado a 1.5, incluso eclipse se estaba ejecutando en 1.5, y JAVA_HOME también era 1.5. Ejecutando el objetivo ant desde la línea de comando usó JRE 1.5, pero dentro del eclipse todavía usó 1.6.
Tuve que hacer clic derecho en el objetivo de la hormiga, seleccionar Ejecutar como ... y cambiar el JRE en la pestaña JRE. Esta configuración se recuerda para ejecuciones posteriores.
Estoy usando Ant 1.7.0 e instalé java 1.6 que está en JAVA_HOME.
Quiero construir un proyecto usando Java 1.5, así que he exportado JAVA_HOME para ser mi directorio java 1.5.
java -version
dice "1.5". Cuando ejecuto Ant usa java 1.6.
Crear archivo:
<target name="print-version">
<echo>Java/JVM version: ${ant.java.version}</echo>
<echo>Java/JVM detail version: ${java.version}</echo>
</target>
Salida:
[echo] Java/JVM version: 1.5
[echo] Java/JVM detail version: 1.5.0_08
De acuerdo con el manual de hormigas , la configuración de JAVA_HOME debería funcionar: ¿está seguro de que la configuración modificada es visible para la hormiga?
Alternativamente, puede usar la variable JAVACMD.
Ejecutar ant en modo detallado: ant -v
y busca pistas.
En Eclipse:
Haga clic derecho en su build.xml
haga clic en "Ejecutar como", haga clic en "Configuraciones de herramientas externas ..."
Seleccione la pestaña JRE . Seleccione el JRE que está utilizando.
Vuelva a ejecutar la tarea, debería estar bien ahora.
Esta es una pregunta bastante antigua, pero agregaré mis notas para futuras referencias.
Tuve un problema similar y lo solucioné cambiando el orden de las exportaciones en la variable PATH.
Por ejemplo, estaba usando un método de concatenación de cadenas en mi PATH haciendo (esto es solo un ejemplo):
$> export PATH=''$PATH:''$JAVA_HOME
Si mi variable PATH ya tuviera un java, el último valor no tendría sentido, por lo tanto, el orden sería importante. Para resolver esto comencé a invertirlo agregando mi variable primero, luego agregué la RUTA.
Siguiendo esta idea invertí el orden en que ANT_HOME estaba siendo exportado. Agregar JAVA_HOME antes de ANT_HOME.
Esto podría ser solo una coincidencia, pero funcionó para mí.
Establezca su variable de entorno JAVA_HOME
con la versión java requerida (en su caso java 1.5), luego en build.xml
use executable="${JAVA_HOME}/bin/javac"
dentro de la etiqueta <javac></javac>
.
ejemplo:
<target name="java compiler" description="Compiles the java code">
<javac executable="${JAVA_HOME}/bin/javac" srcdir="./src"
destdir="${build.dir}/classes">
</javac>
</target>
Por defecto, Ant considerará el JRE como la versión JRE del espacio de trabajo. Debe cambiar de acuerdo con su versión requerida siguiendo el siguiente.
En Eclipse:
Haga clic derecho en su build.xml, haga clic en "Ejecutar como", haga clic en "Configuraciones de herramientas externas ..." Seleccione la pestaña JRE.
Seleccione el JRE que está utilizando.
Vuelva a ejecutar la tarea, debería estar bien ahora.
Puede lograr eso con los siguientes pasos, si está utilizando Eclipse IDE:
Haga clic derecho sobre la tarea en su archivo de compilación ant (
build.xml
).Pase el mouse sobre "Ejecutar como", haga clic en "Configuraciones de herramientas externas ...".
Agregue los siguientes a "Argumentos":
-Dant.build.javac.target=1.5 -Dant.build.javac.source=1.5
Puede usar las propiedades de origen y destino en la etiqueta javac para establecer un tiempo de ejecución objetivo. El siguiente ejemplo compilará cualquier código fuente para orientar la versión 1.4 en cualquier compilador que admita la versión 1.4 o posterior.
<javac compiler="classic" taskname="javac" includeAntRuntime="no" fork=" deprecation="true" target="1.4" source="1.4" srcdir="${src}" destdir="${classes}">
Nota: ''srcdir'' y ''destdir'' son valores de propiedad establecidos en el script de compilación, por ejemplo <property name="classes" value="c:/classes" />
Si ejecuta Ant desde eclipse, el eclipse usará jdk o jre que está configurado en class-path (ruta de compilación).
Si no estás usando eclipse. Luego puede cambiar la propiedad ant java directamente en el archivo como se menciona aquí.
http://pissedoff-techie.blogspot.in/2014/09/ant-picks-up-incorrect-java-version.html
También puede especificar en una tarea javac qué nivel de compatibilidad (1.4, 1.5, 1.6) desea usar, puede establecer los valores de nivel "fuente" y "objetivo", consulte los documentos aquí: documentación de la tarea Javac
Utilice las siguientes 2 propiedades para la etiqueta javac
:
fork="yes"
executable="full-path-to-the-javac-you-want-to-use".
La explicación de las propiedades se puede encontrar aquí
De acuerdo con la Documentación Ant , configure la variable de entorno JAVACMD
para completar la ruta a java.exe
de la versión de JRE para la que desea ejecutar Ant.