Ne pouvait pas réserver suffisamment d'espace pour des tas d'objets
Je suis l'exception suivante à plusieurs reprises chaque fois que j'essaie d'exécuter le programme.
Erreur s'est produite lors de l'initialisation de VM
Ne pouvait pas réserver suffisamment d'espace pour des tas d'objets
N'a pas pu créer la machine virtuelle Java.
J'ai essayé d'augmenter mon mémoire virtuelle (taille de la page) et la taille de la RAM, mais en vain. Quelqu'un peut me dire comment puis-je éliminer cette erreur?
- double possible de Java Refuse de Démarrer, ne Pourrait réserver suffisamment d'espace pour des tas d'objets
- J'ai aussi ce message d'erreur lorsque vous utilisez le jdk/jre 1.6 sur ma machine virtuelle, essayé de changer de config valeurs indiquées dans les commentaires, mais ce n'était pas aider, après la mise à jour de jdk 1.7 l'erreur a disparu et plus Xmx paramètres appliqués. Semble qu'il y a beaucoup de changements avec l'utilisation du tas depuis la version 1.6 de java.
Vous devez vous connecter pour publier un commentaire.
Exécution de la JVM avec
-XX:MaxHeapSize=512m
(ou n'importe quel grand nombre que vous en avez besoin) (ou-Xmx512m
pour faire court)Cela peut aussi être causée par mettre quelque chose de trop grand sur un 32 bits HotSpot vm, par exemple:
où cette pourrait/serait travail:
Je suis tombé sur cette lors de l'utilisation de javac, et il ne semble pas, pour reprendre les options de ligne de commande,
donc la solution ici il sorte ensemble _JAVA_OPTIONS
Et cette compile bien.
Ce qui m'arrive sur les machines avec beaucoup de RAM, mais avec moins de mémoire ulimits. Java décide d'allouer un gros tas de terre, car il détecte la mémoire vive de l'ordinateur, mais il n'est pas permis de les attribuer à cause de ulimits.
ici est de savoir comment résoudre le problème:
Allez dans Démarrer->Panneau de configuration->Système->Avancé(onglet)->Variables d'Environnement->Système
Variables->Nouveau: nom de la Variable:
_JAVA_OPTIONS
Valeur de la Variable:
-Xmx512M
Nom de la Variable:
Path
Valeur de la Variable:
%PATH%;C:\Program Files\Java\jre6\bin;F:\JDK\bin;
Changement à votre chemin d'accès approprié.
32 bits de Java nécessite contiguë de l'espace libre dans la mémoire pour s'exécuter. Si vous spécifiez une grande taille de segment de mémoire, il y a peut-être pas si beaucoup d'espace libre contiguë en mémoire, même si vous avez beaucoup plus d'espace que nécessaire.
L'installation d'une version 64 bits de Java permet dans ces cas, la mémoire contiguë exigences s'applique uniquement à la version 32 bits de Java.
Combiné avec -Xmx512M utilisation -d64 assurez-vous que vous êtes en cours d'exécution 64 bits VM. Sur une machine 64 bits, je croyais que j'était en marche la machine virtuelle 64 bits, mais non. Après l'installation de la version 64 bits de Java le -d64 option fonctionne et -Xmx permet beaucoup plus grandes tailles de mémoire.
J'ai Eu la même erreur,et résolu ce problème en configurant dans la course.conf.chauve-souris
Exécution de la JVM avec la configuration d'exécution.conf.chauve-souris dans Jboss5x
Si la mémoire disponible n'est pas disponible tant QUE vous êtes de passage dans l'énoncé alors s'il vous plaît apporter des modifications à exécuter.conf.chauve-souris
Je sais qu'il y a beaucoup de réponses ici déjà, mais aucun d'eux ne m'a aidé. En fin de compte, j'ai ouvert le fichier
/etc/elasticsearch/jvm.options
et a changé:à
Qui a résolu pour moi. Espérons que cela aide quelqu'un d'autre ici.
Supposons que votre classe est appelée
Test
dans le paquetmypackage
. Exécuter votre code comme ceci:Cette réserve 1024 MO de mémoire pour votre code. Si vous voulez 512 MO, vous pouvez utiliser:
Utilisent peu de m dans
1024m
,512m
, etcParfois, cette erreur indique que la physique de la mémoire et du swap sur le serveur sont pleinement utilisées!
J'ai été voir ce problème récemment sur un serveur exécutant red hat Enterprise Linux 5.7 48 GO de RAM. J'ai trouvé que même l'exécution de
causé la même erreur, qui a établi que le problème n'est pas spécifique à ma demande.
De course
rapporté que MemFree et SwapFree étaient à la fois bien moins de 1% de la MemTotal et SwapTotal valeurs, respectivement:
S'arrêtant quelques autres applications en cours d'exécution sur la machine a apporté la libérer de la mémoire des chiffres en hausse en quelque sorte:
À ce stade, une nouvelle instance de Java devrait démarrer d'accord, et j'ai réussi à lancer mon application.
(Évidemment, pour moi, c'était juste une solution temporaire; j'ai encore un encours de la tâche à faire un examen plus approfondi des processus en cours d'exécution sur la machine pour voir si il ya quelque chose qui peut être fait pour réduire la valeur nominale de l'utilisation de la mémoire niveaux, sans avoir à recourir à l'arrêt des applications.)
java -version
défaut, même si le sommet a montré quelques gratuit encore 😐 (aussi dit Erreur s'est produite lors de l'initialisation de la VM n'a pas Pu réserver suffisamment d'espace pour la carte marquage tableau parfois). Fix semblait être au top, regardez pour les processus qui utilisent le plus de mémoire RAM (VIRT colonne), les tuer [postgres, appdynamics pour moi] 😐Erreur :
Pour l'erreur, "erreur s'est produite lors de l'initialisation de la vm n'a pas pu réserver suffisamment d'espace pour des tas d'objets de jboss"
Cause :
Mauvaise/insuffisance d'allocation de mémoire à notre JVM comme mentionné ci-dessous.
par exemple JAVA_OPTS="-Xms1303m -Xmx1303m -XX:MaxPermSize=256m" dans jboss-eap-6.2\bin\autonome.conf ou "JAVA_OPTS=-Xms1G -Xmx1G -XX:MaxPermSize=256M" dans jboss-eap-6.2\bin\autonome.conf.chauve-souris, qui n'est rien, mais la JVM de l'allocation de la mémoire paramètres de pool.
Résolution :
Est généralement pas recommandé d'avoir la même taille pour min et max.
Si vous exécutez votre application à partir d'eclipse,
java -Xgcprio:throughput -Xmx:64m -Xms:64m myApp
"J'ai eu des problèmes similaires. J'avais installé la version 32 bits de Java sur un ordinateur 64 bits.
Par la désinstallation de la version et de l'installation de la version 64 bits de Java. J'ai été en mesure de résoudre le problème.
J'ai récemment été confronté à ce problème. J'ai 3 java les applications qui démarrent avec 1024m ou 1280m de la taille du segment.
Java est à la recherche à la disposition de l'espace de swap, et si il n'y a pas assez de mémoire disponible, la jvm sorties.
Pour résoudre le problème, j'ai eu à la fin de plusieurs programmes qui ont une grande quantité de mémoire virtuelle allouée.
J'ai été en cours d'exécution sur x86-64 linux avec une jvm 64 bits.
En supposant que vous avez assez de mémoire libre et vous le programme d'installation vous JVM arguments correctement, vous pourriez avoir un problème de fragmentation de la mémoire. Vérifier Java maximale de la mémoire sous Windows XP.
Si vous êtes en cours d'exécution JVM 32 bits, le changement de taille de tas de petits serait probabaly de l'aide. Vous pouvez le faire en passant des arguments pour java directement ou par l'intermédiaire de l'environnement, des variables comme les suivantes,
Pour la JVM 64 bits, plus gros, plus la taille du segment comme
-Xms512M -Xmx1536M
devrait fonctionner.Exécuter
java -version
oujava -d32
,java--d64
pour Java7 pour vérifier la version que vous utilisez.J'ai eu la bonne quantité de paramètres de la mémoire, mais pour moi, c'était à l'aide d'un 64bit intellij avec 32 bits de la jvm. Une fois que je suis passé à 64 bits, VM, l'erreur a disparu.
De toute façon, ici, est de savoir comment résoudre le problème:
Allez dans Démarrer->Panneau de configuration->Système->Avancé(onglet)->Variables d'Environnement->Variables Système->Nouveau:
Nom de la Variable: _JAVA_OPTIONS
Valeur de la Variable: -Xmx512M
OU
Changer la fourmi appel, comme illustré ci-dessous.
Il a travaillé pour moi.
Erreur s'est produite lors de l'initialisation de la VM
Ne pouvait pas réserver suffisamment d'espace pour 1572864KB tas d'objets
J'ai changé la valeur de la mémoire dans les paramètres.grade fichier
1536 à 512 et il a aidé les
Dans le cas où vous sont en cours d'exécution d'un programme java:
- exécuter votre programme dans un terminal en utilisant le bon de commande pour linux, ce serait "java-jar myprogram.jar" et d'ajouter "- Xms256m -Xmx512m, par exemple: "java -jar myprogram.jar Xms256m -Xmx512m'
Dans le cas où vous exécutez une .sh script (linux, mac?) ou une .chauve-souris de script (windows) ouvrez le script et de regarder pour les options java si elles sont présentes et augmenter la mémoire.
Si tous les ci-dessus ne fonctionne pas, vérifiez vos processus (ctrl+alt+suppr sous windows) (ps aux sur linux/mac) et de tuer les processus qui utilisent beaucoup de mémoire et ne sont pas nécessaires pour votre système d'exploitation! => Essayer de ré-exécuter votre programme.
Dans CASSANDRA_HOME/bin/cassandra.chauve-souris vous trouverez de configuration suivantes
Vous pouvez réduire la 2G à un petit nombre, par exemple 1G ou même moins et cela devrait fonctionner.
Même si vous êtes en cours d'exécution sur machine unix, le changement .sh fichier de façon appropriée.
J'ai eu le même message d'erreur et il s'est résolu lorsque j'ai supprimé les fichiers temporaires à l'aide de %temp% et le redémarrage d'eclipse.
Allez dans Démarrer->Panneau de configuration->Système->Avancé(onglet)->Variables d'Environnement->Variables Système->Nouveau:
Parfois, il raconte en
Si vous le réglez à:
Il devrait fonctionner.
Remplacer
-Xmx2G
avec-Xms512M
ou plus grand que la taille de la mémoire de cassandra.fichier bat dans cassandra répertoire bin.Pas besoin de faire quoi que ce soit simplement chnage dans le POM de fichier comme ci-dessous