2010-08-03 54 views
28

Cuando ejecuto mi compilación Ant en Eclipse, aparece el siguiente mensaje de error y falla la compilación Ant.Obteniendo error al ejecutar el compilador javac.exe, al usar Ant en Eclipse

mensaje de error: Error al ejecutar javac.exe compilador

línea donde la acumulación se detiene:

<javac destdir="${classes.home}" debug="on" fork="true" memoryinitialsize="512M" memorymaximumsize="1G"> 
     <classpath refid="classpath"/> 
     <src path="${source.home}"/> 
</javac> 

nadie se ha enfrentado a un problema similar antes? o alguien sabe lo que está mal aquí?

información del sistema: Eclipse Helio, JDK 1.5

+0

¿No hay más salida que eso? ¿Se puede ejecutar con un registro detallado? –

+0

no hay más salida después del mensaje de error. Lo intentaré con el registro detallado. – Veera

Respuesta

52

Tuve el mismo problema y el problema fue que en eclipse java.home se refería a JRE en lugar de JDK. Lo cambié y la construcción fue exitosa. Puede hacer lo siguiente para cambiarlo a JDK:

Preferencias> Java> JRE instalados> Agregar ... Para 'Tipo JRE', seleccione 'VM estándar'> Siguiente> Directorio: seleccione su directorio JDK (en lugar de JRE) (en mi caso: C: \ Archivos de programa \ Java \ jdk1.6.0_16), presione OK.

Ahora, ha vuelto a 'JRE instalados', seleccione el JDK aquí también.

La publicación siguiente ayudó a encontrar la solución. JAVA_HOME points to the wrong place

+0

acaba de guardar mi tiempo – Forhad

6

Tal vez el problema se debe a que javac "javac.exe" no está en la ruta del sistema, por favor, edite la ruta del sistema y añadir el directorio/bin del JDK a ella para corregir este problema.

Abra un shell o símbolo del sistema e intente escribir: javac para verificar si la ruta del sistema está configurada correctamente.

+0

configuré el JDK en la página de preferencias de Eclipse "JRE instalado". Creo que Eclipse se encarga de poner el javac en claspack. – Veera

+0

No confunda CLASSPATH con SYSTEM PATH, el classpath se usa con fines de compilación, system path se ocupa de los binarios del sistema. Puede intentarlo si el problema es que, simplemente anexe la ruta del contenedor JDK a su RUTA DEL SISTEMA. – Impiastro

+0

Esta es también otra forma de solucionar este problema. – prolink007

0

Intente cambiar memorymaximumsize = "1G" a memorymaximumsize = "512M".

4

Configurar eclipse para apuntar a JDK en lugar de JRE no funcionó para mí. Con una investigación más profunda, resolví este problema al detener el proceso de creación de bifurcación. En su build.xml, elimine el atributo fork de la etiqueta <javac>.

16

Tuve el mismo problema y eliminé la horquilla del atributo de javac y el problema desapareció.

+0

Funciona para mí pero con un mensaje de advertencia: '[javac] Dado que el tenedor es falso, ignorando la configuración InicialTamaño de la memoria. [javac] Dado que el tenedor es falso, ignorando la configuración del valor máximo de memoria. – chance

0

Intente liberar parte de la memoria principal. Cierre los programas ávidos de memoria y detenga los procesos hambrientos de memoria si puede.

39

Si la respuesta aceptada anteriormente no resuelve el problema para usted (como no lo hizo para mí), después de actualizar el java.home a JDK en lugar de JRE como se sugiere en la respuesta aceptada anteriormente, vaya a Ejecutar - > Herramientas externas -> Configuración de herramientas externas -> seleccione su build.xml en el menú de la izquierda -> seleccione la pestaña JRE -> seleccione el JDK (del menú desplegable) para la opción del botón de selección JRE Separado -> Haga clic en Ejecutar.

Esto debería solucionar el problema.

+0

Muchas gracias ... funcionó :) – Atul

+0

esto funcionó para mí, ¡gracias! – MCR

+3

+1, esta es la respuesta más precisa para aquellos que obtienen este error mientras corren. Sí, debes asegurarte de que tienes JDK configurado como el JRE predeterminado, pero también necesitas decirle a tu compilación de hormigas que use este JDK. –

2

He resuelto esto comprobando mis variables de entorno en mi Windows 7. He descubierto que JAVA_HOME apunta a C: \ Archivos de programa (x86) \ Java \ jdk1.6.0_31 cuando se supone que ser C: \ Archivos de programa \ Java \ jdk1.6.0_31.Si usted quiere saber cómo read this

0

He intentado todo pero nada funcionó para mí hasta que me he fijado (tenedor = 'no' o un tenedor = 'falso' en su caso) y me funcionó perfectamente

0

Quité fork = "true" y supere ese código. Lo que podría ser interesante para aquellos de ustedes que tienen este problema es que ahora, en esa línea, consigo la salida:

'Since fork is false, ignoring memoryMaximumSize setting.' 

por lo que puede ser un problema con memoryMaximumSize si usted necesita para mantener su tenedor = "true "configuración, como se sugirió anteriormente.

0

que fija el problema como este:

Mi carpeta de inicio de Java tenía el camino equivocado. Debería haber sido C:\Program Files (x86)\Java\jdk1.5.0_15, pero en su lugar era C:\Program Files (x86)\Java\jdk1.5.0_15\bin.

3

Me enfrenté al mismo problema, y ​​aquí está mi consejo, tal vez ayudará a alguien.
De hecho, el mensaje Error running javac.exe compiler significa que algo salió mal. La pregunta es, ¿qué exactamente? Cuando Ant ejecuta la tarea javac con el indicador fork="true", no imprime ningún error. En mi caso, no los imprimió incluso después de haber agregado verbose="true", como se sugiere here. solución fue añadir -verbose bandera de línea de comandos Ant:

ant -verbose 

Después de esto, la hormiga comienza a imprimir los mensajes de error completo, por lo que son capaces de solucionar un problema.

0

Nos encontramos con el mismo problema en una máquina de compilación de Windows mientras que a nivel local (en una máquina de Unix) todo salió bien. Tenedor = true aún no ha ayudado tampoco, que dio lugar a un tenedor fallido proceso excepción también sólo en el servidor de compilación

Investigación

Después de algunas investigaciones, hemos tenido un indicio de que la ruta de clase podría ser demasiado largo. Recreamos la estructura de carpetas localmente en una máquina de Windows y nos topamos con el mismo problema y vimos que el classpath era demasiado largo (usamos -v y -d para los detalles cuánto tiempo) y esta fue la causa del error.

Solución

La solución fue crear un frasco, que contiene sólo el manifiesto con todas las bibliotecas, consulte this answer para más detalles

0

Si está ejecutando ant en Eclipse, en Ejecutar como - > Segunda opción Ant y elija la ruta JDK y ejecute la compilación de nuevo.

Cuestiones relacionadas