“Ocurrió un error durante la inicialización de la máquina virtual; No se pudo reservar suficiente espacio para el montón de objetos “usando -Xmx3G

Antes que nada, tengo una caja con 8 gb de ram, por lo que dudo que la memoria total sea el problema. Esta aplicación funciona bien en máquinas con 6 GB o menos.

Estoy intentando reservar 3GB de espacio usando -Xmx3G en “Argumentos VM” en Configuraciones de Ejecución en Eclipse.

Cada vez que bash reservar más de 1500mb, aparece este error: “Ocurrió un error durante la inicialización de la máquina virtual; No se pudo reservar suficiente espacio para el montón de objetos “usando -Xmx3G

¿Que esta pasando aqui?

¿Podría ser que estés usando un jvm de 32 bits en esa máquina?

Aquí se explica cómo solucionarlo: vaya a Start->Control Panel->System->Advanced(tab)->Environment Variables->System

 Variables->New: Variable name: _JAVA_OPTIONS Variable value: -Xmx512M Variable name: Path Variable value: ;C:\Program Files\Java\jre6\bin;F:\JDK\bin; 

Cambie esto a su camino apropiado .

Esto en realidad no es un problema específico de Eclipse; es un problema general de Java-on-Windows. Es debido a cómo la JVM asigna memoria en Windows; insiste en asignar un bloque contiguo de memoria, que a menudo Windows no puede proporcionar, incluso si hay suficientes fragmentos separados para satisfacer la solicitud de asignación. Hay utilidades que intentarán ayudar a Windows a “desfragmentar” su memoria, lo que, en teoría, ayudaría a esta situación; pero realmente no los he probado en serio, así que no puedo hablar de su efectividad. Una cosa que he escuchado a veces que podría ayudar es reiniciar Windows y, antes de iniciar cualquier otra aplicación, iniciar la aplicación Java que necesita la gran cantidad de memoria. Si tiene suerte, Windows no habrá fragmentado aún su espacio de memoria y Java obtendrá el bloque contiguo que se solicita.

En algún lugar en las interwebs hay más explicaciones técnicas y análisis de este tema, pero no tengo referencias útiles.

Encontré esto, sin embargo, que parece útil: https://stackoverflow.com/a/497757/639520

Primero, el JRE de 32 bits no puede usar más ~ 1.5Gb de ram. Entonces, si quieres más, usa un JRE de 64 bits.

Segundo, cuando se inicia una nueva JVM, esta sum la propiedad -Xmx de todas las JVM que se están ejecutando, y se verifica si queda suficiente memoria en el sistema para ejecutarse por su cuenta -Xmx, si no es suficiente, se produce el error.

Estaba usando Liferay con el servidor Tomcat del eclipse IDE. Me quedé atrapado con el mismo error al hacer clic en el inicio del servidor. Haga doble clic en el servidor de eclipse. Abre la página de Información general del servidor. Argumentos de memoria actualizados desde -Xmx1024m -XX: MaxPermSize = 256m a -Xmx512m -XX: MaxPermSize = 256m. Entonces estaba funcionando para mí.

Asegúrese de que Eclipse esté ejecutando la misma JVM que cree que se está ejecutando. Si utiliza java en su navegador web, probablemente también tenga una versión de 32 bits flotando, que podría estar teniendo prioridad si se instaló o actualizó recientemente.

Para estar absolutamente seguro, recomiendo agregar estas dos líneas a su archivo eclipse.ini en la parte superior:

 -vm C:/Java/jdk1.6.0_27/bin 

… en mi máquina C:/Java/jdk1.6.0_27/bin donde está C:/Java/jdk1.6.0_27/bin la JVM que sé que es de 64 bits. Asegúrese de tener la carpeta bin allí.

(Como beneficio adicional, en Windows 7, esto también te permite “anclar la pestaña”, por lo que tuve que hacer esto para mi propio uso)

Este es el problema del tamaño del Heap. Edite su .bat (archivo por lotes). Puede mostrar el tamaño de Hep 1024. Cambiarlo a 512 Entonces debería funcionar.

También tuve el mismo problema al usar Eclipse, que era de 32 bits, y la JVM que usaba era de 64 bits. Cuando enrute el Eclipse a JVM de 32 bits, funcionó

Probablemente estás probando opciones incorrectas de todos modos. Obtuve un error similar con el registro de errores de soporte:

 Java HotSpot(TM) Client VM warning: ignoring option PermSize=32M; support was removed in 8.0 Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0 

En mi caso, el software aún no era compatible con Java 8 (el script usaba argumentos antiguos de JVM) pero tenía Java 8 de manera predeterminada.

Una de las razones de este problema es que no hay memoria disponible para que Tomcat pueda comenzar. Intente eliminar el software de ejecución no deseado de Windows y reinicie el eclipse y el tomcat.