Recibo la siguiente excepción repetidamente cada vez que intento ejecutar el programa.
Se produjo un error durante la inicialización de VM
No se pudo reservar suficiente espacio para el montón de objetos
No se pudo crear la máquina virtual de Java.
Traté de aumentar mi memoria virtual (tamaño de página) y el tamaño de RAM, pero fue en vano.
¿Cómo puedo eliminar este error?
Respuestas:
Ejecute la JVM con
-XX:MaxHeapSize=512m
(o cualquier número grande que necesite) (o-Xmx512m
para abreviar)fuente
Esto también puede ser causado al configurar algo demasiado grande en un HotSpot vm de 32 bits, por ejemplo:
donde esto podría / funcionaría:
fuente
Aquí está cómo solucionarlo:
Vaya a Inicio-> Panel de control-> Sistema-> Avanzado (pestaña) -> Variables de entorno-> Sistema
Variables-> Nuevo: Nombre de la variable:
_JAVA_OPTIONS
Valor de la-Xmx512M
variable: Nombre de laPath
variable: Valor de la variable:
%PATH%;C:\Program Files\Java\jre6\bin;F:\JDK\bin;
Cambie esto a su camino apropiado.
fuente
Me encontré con esto cuando uso javac, y no parece captar las opciones de línea de comando,
así que la solución aquí es establecer _JAVA_OPTIONS
Y esto se compila bien.
Esto me sucede en máquinas con mucha RAM, pero con límites de memoria más bajos. Java decide asignar un gran montón porque detecta el ram en la máquina, pero no está permitido asignarlo debido a ulimits.
fuente
Java de 32 bits requiere espacio libre contiguo en la memoria para ejecutarse. Si especifica un tamaño de almacenamiento dinámico grande, es posible que no haya mucho espacio libre contiguo en la memoria, incluso si tiene mucho más espacio libre disponible del necesario.
Instalar una versión de Java de 64 bits ayuda en estos casos, los requisitos de memoria contigua solo se aplican a Java de 32 bits.
fuente
En combinación con -Xmx512M, use -d64 para asegurarse de que está ejecutando VM de 64 bits. En una máquina de 64 bits, pensé que estaba ejecutando una máquina virtual de 64 bits, pero no. Después de instalar Java de 64 bits, la opción -d64 funciona y -Xmx permite tamaños de memoria mucho mayores.
fuente
Obtuve el mismo error y lo resolví configurándolo en run.conf.bat
Ejecute la JVM con la configuración run.conf.bat en Jboss5x
Si no hay memoria disponible mientras pasa la declaración, realice cambios en run.conf.bat
fuente
Sé que ya hay muchas respuestas aquí, pero ninguna de ellas me ayudó. Al final abrí el archivo
/etc/elasticsearch/jvm.options
y cambié:a
Eso lo resolvió para mí. Esperemos que esto ayude a alguien más aquí.
fuente
Tuve problemas similares. Había instalado la versión de 32 bits de Java en una máquina de 64 bits.
Al desinstalar esa versión e instalar la versión de 64 bits de Java. Pude resolver el problema.
fuente
Supongamos que su clase se llama
Test
en paquetemypackage
. Ejecute su código así:Esto reservará 1024 MB de espacio de almacenamiento dinámico para su código. Si quieres 512 MB, puedes usar:
Utilice poco m
1024m
,512m
, etc.fuente
A veces, este error indica que la memoria física y el intercambio en el servidor realmente se utilizan por completo.
Estaba viendo este problema recientemente en un servidor que ejecuta RedHat Enterprise Linux 5.7 con 48 GB de RAM. Descubrí que incluso solo corriendo
causó el mismo error, lo que estableció que el problema no era específico de mi aplicación.
Corriendo
informó que MemFree y SwapFree estaban por debajo del 1% de los valores MemTotal y SwapTotal, respectivamente:
Al detener algunas otras aplicaciones en ejecución en la máquina, las cifras de memoria libre aumentaron un poco:
En este punto, una nueva instancia de Java comenzaría bien y pude ejecutar mi aplicación.
(Obviamente, para mí, esta fue solo una solución temporal; todavía tengo una tarea sobresaliente para hacer un examen más exhaustivo de los procesos que se ejecutan en esa máquina para ver si hay algo que se pueda hacer para reducir los niveles nominales de utilización de memoria, sin tener que recurrir a la detención de las aplicaciones).
fuente
java -version
fallando, a pesar de que la parte superior mostró algo libre todavía: (también se dijo que se produjo un error durante la inicialización de VM. A veces, no se pudo reservar suficiente espacio para la matriz de marcado de tarjetas). La solución parecía ser ejecutar top, buscar qué procesos usaban más RAM (columna VIRT), matarlos [postgres, appdynamics para mí]: |Error:
Para el error, "el error ocurrido durante la inicialización de vm no pudo reservar suficiente espacio para el montón de objetos jboss"
Causa principal :
Asignación de memoria inadecuada / insuficiente a nuestra JVM como se menciona a continuación.
ej. JAVA_OPTS = "- Xms1303m -Xmx1303m -XX: MaxPermSize = 256m" en jboss-eap-6.2 \ bin \ standalone.conf o "JAVA_OPTS = -Xms1G -Xmx1G -XX: MaxPermSize = 256M" en jboss-eap-6.2 \ bin \ \ standalone.conf.bat que no es más que parámetros de agrupación de asignación de memoria JVM.
Resolución:
Generalmente no se recomienda tener el mismo tamaño para min y max
Si está ejecutando su aplicación desde eclipse,
fuente
java -Xgcprio:throughput -Xmx:64m -Xms:64m myApp
"Recientemente me enfrenté a este problema. Tengo 3 aplicaciones Java que comienzan con un tamaño de almacenamiento dinámico de 1024m o 1280m. Java está mirando el espacio disponible en el intercambio, y si no hay suficiente memoria disponible, la jvm se cierra.
Para resolver el problema, tuve que finalizar varios programas que tenían una gran cantidad de memoria virtual asignada.
Estaba corriendo en x86-64 linux con una jvm de 64 bits.
fuente
Tenía la cantidad correcta de configuraciones de memoria, pero para mí estaba usando un intellij de 64 bits con jvm de 32 bits. Una vez que cambié a VM de 64 bits, el error desapareció.
fuente
Suponiendo que tiene suficiente memoria libre y configura correctamente sus argumentos de JVM, es posible que tenga un problema de fragmentación de la memoria. Verifique la memoria máxima de Java en Windows XP .
fuente
Si está ejecutando JVM de 32 bits, cambiar el tamaño de almacenamiento dinámico a un valor más pequeño probablemente ayudaría. Puede hacerlo pasando argumentos a Java directamente o mediante variables de entorno como las siguientes,
Para JVM de 64 bits, un tamaño de almacenamiento dinámico mayor
-Xms512M -Xmx1536M
debería funcionar.Ejecute
java -version
ojava -d32
,java--d64
para que Java7 compruebe qué versión está ejecutando.fuente
De todos modos, aquí está cómo solucionarlo: vaya a Inicio-> Panel de control-> Sistema-> Avanzado (pestaña) -> Variables de entorno-> Variables del sistema-> Nuevo: Nombre de la variable: _JAVA_OPTIONS Valor de la variable: -Xmx512M
O
Cambie la llamada de hormiga como se muestra a continuación.
Funcionó para mi.
fuente
Se produjo un error durante la inicialización de VM No se pudo reservar suficiente espacio para el montón de objetos 1572864KB
Cambié el valor de la memoria en el archivo settings.grade 1536 a 512 y ayudó
fuente
Vaya a Inicio-> Panel de control-> Sistema-> Avanzado (pestaña) -> Variables de entorno-> Variables de sistema-> Nuevo:
fuente
En caso de que esté ejecutando un programa java: - ejecute su programa en una terminal usando el comando correcto para Linux, sería 'java -jar myprogram.jar' y agregue -Xms256m -Xmx512m, por ejemplo: 'java -jar myprogram.jar Xms256m -Xmx512m '
En caso de que esté ejecutando un script .sh (linux, mac?) O un script .bat (windows), abra el script y busque las opciones de Java si están presentes y aumente la memoria.
Si todo lo anterior no funciona, verifique sus procesos (ctrl + alt + delete en windows) (ps aux en linux / mac) y elimine los procesos que usan mucha memoria y no son necesarios para su sistema operativo. => Intente volver a ejecutar su programa.
fuente
En CASSANDRA_HOME / bin / cassandra.bat encontrarás la siguiente configuración
Puede reducir 2G a un número menor, por ejemplo, 1G o incluso menor, y debería funcionar.
Lo mismo si está ejecutando en unix box, cambie el archivo .sh adecuadamente.
fuente
Obtuve el mismo error y se resolvió cuando eliminé los archivos temporales usando% temp% y reiniciando eclipse.
fuente
A veces se relaciona como
Si lo configura a:
Deberia de funcionar.
fuente
Reemplace
-Xmx2G
con-Xms512M
o cualquier tamaño de memoria mayor en el archivo cassandra.bat en el directorio bin de cassandra.fuente
Abra el archivo gradle.properties en la carpeta de Android.
Reemplace esta línea:
con:
Explicación: Límite máximo del documento de Gradle:
Si el entorno de compilación solicitado no especifica un tamaño de almacenamiento dinámico máximo, el Daemon usará hasta 512 MB de almacenamiento dinámico.
fuente
No es necesario hacer nada, solo intercambiar en el archivo POM como se muestra a continuación
fuente