每次我试图运行该程序时,都会重复得到以下异常。
虚拟机初始化时出错 无法为对象堆预留足够的空间 无法创建Java虚拟机。
我试图增加我的虚拟内存(页面大小)和RAM大小,但没有效果。
我怎样才能消除这个错误?
每次我试图运行该程序时,都会重复得到以下异常。
虚拟机初始化时出错 无法为对象堆预留足够的空间 无法创建Java虚拟机。
我试图增加我的虚拟内存(页面大小)和RAM大小,但没有效果。
我怎样才能消除这个错误?
当前回答
我在使用javac时遇到了这个问题,它似乎没有选择命令行选项,
-bash-3.2$ javac -Xmx256M HelloWorldApp.java
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
所以这里的解决方案是设置_JAVA_OPTIONS
-bash-3.2$ export _JAVA_OPTIONS="-Xmx256M"
-bash-3.2$ javac HelloWorldApp.java
Picked up _JAVA_OPTIONS: -Xmx256M
这编译得很好。
我在RAM很大但内存上限较低的机器上遇到过这种情况。Java决定分配一个大堆,因为它检测到机器中的ram,但由于ulimit,它不允许分配它。
其他回答
打开它。android文件夹中的属性文件。
替换这一行:
org.gradle.jvmargs=-Xmx1536M
:
org.gradle.jvmargs=-Xmx512m
解释: 从Gradle文件的最大限制:
如果请求的构建环境没有指定最大堆大小,守护进程将使用最多512MB的堆。
有时,此错误表明服务器上的物理内存和交换空间实际上已被充分利用!
我最近在一台运行RedHat Enterprise Linux 5.7的服务器上看到了这个问题,它有48 GB的RAM。我发现即使只是跑步
java -version
引起了同样的错误,这表明问题不是我的应用程序特有的。
运行
cat /proc/meminfo
MemFree和SwapFree分别低于MemTotal和SwapTotal值的1%:
MemTotal: 49300620 kB
MemFree: 146376 kB
...
SwapTotal: 4192956 kB
SwapFree: 1364 kB
停止机器上正在运行的其他几个应用程序会使可用内存数字有所增加:
MemTotal: 49300620 kB
MemFree: 2908664 kB
...
SwapTotal: 4192956 kB
SwapFree: 1016052 kB
此时,一个新的Java实例将正常启动,并且我能够运行我的应用程序。
(显然,对我来说,这只是一个暂时的解决方案;我还有一项未完成的任务,那就是对那台机器上运行的进程进行更彻底的检查,看看是否可以采取一些措施来降低名义上的内存使用水平,而不必求助于停止应用程序。)
我知道这里已经有很多答案了,但没有一个能帮到我。最后,我打开文件/etc/elasticsearch/jvm。选项和更改:
-Xms2G
-Xmx2G
to
-Xms256M
-Xmx256M
这为我解决了问题。希望这能帮助到这里的其他人。
虚拟机初始化时出错 无法为1572864KB对象堆预留足够的空间
我在设置中改变了内存的值。级文件 从1536到512,很有帮助
在我的情况下,我不能增加org.gradle.jvmargs=-Xmx…在它。超过1GB的属性。它没有工作,因为我的机器上安装了两个Java,一个是32位的(Gradle正在使用这个),另一个是64位的。我通过添加指向64位Java的JAVA_HOME环境变量解决了这个问题。