Muchos desarrolladores Java habrán tenido este error al tratar de compilar una gran cantidad de clases, java.lang.OutOfMemoryError:
The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: Java heap space
Si estas compilando con javac em Apache Ant, sete el atributo fork como true, para correr javac en un proceso separado con su propio espacio. Si el atributo fork es seteado false o no es seteado (por defecto es false), javac correra en el mismo proceso que Ant y su heap size sera de 64m.
<javac fork="true"
srcdir="${basedir}/src"
destdir="${basedir}/build/classes"
classpath="${project.classpath}"
memoryinitialsize="256m"
memorymaximumsize="256m">
</javac>
Si no quieres modificar el archivo build.xml, otra opcion es incrementar el heap size de la JVM Ant y seguir ejecutando javac. Solo necesitas setear la variable de entorno ANT_OPTS:
export ANT_OPTS="-Xms256m -Xmx256m" (ksh/bash)
setenv ANT_OPTS="-Xms256m -Xmx256m" (tcsh/csh)
set ANT_OPTS="-Xms256m -Xmx256m" (Windows)
De estas maneras podrás lograr compilar tus clases java si te sale este problema de memoria
;)
3 comentarios:
Quiero darte mis mas sinceras felicitaciones, eres uno de los pocos que ha resuelto mi duda de una manera precisa y didactica. Muchas gracias
De nada estimado, hace varios años me encontré con ese problema y decidí compartir la solución.
Saludos
OUTOFMEMORYERROR: Correr el proyecto desde UIWidgetBase -> build.xml -> Ant build...; luego correrlo normal como siempre "Open external tools dialogs...". Con eso se solucionó el error por arte de magia nada del otro mundo. Nada de instalar de nuevo el ID o de crear workspaces. Lo solucione con algo mas facil, espero que a uds tambien les funcione.
Publicar un comentario