每次我试图运行该程序时,都会重复得到以下异常。
虚拟机初始化时出错 无法为对象堆预留足够的空间 无法创建Java虚拟机。
我试图增加我的虚拟内存(页面大小)和RAM大小,但没有效果。
我怎样才能消除这个错误?
每次我试图运行该程序时,都会重复得到以下异常。
虚拟机初始化时出错 无法为对象堆预留足够的空间 无法创建Java虚拟机。
我试图增加我的虚拟内存(页面大小)和RAM大小,但没有效果。
我怎样才能消除这个错误?
当前回答
我也有类似的问题。我在一台64位机器上安装了32位版本的Java。
通过卸载该版本并安装64位版本的Java。我解决了这个问题。
其他回答
不需要做任何事情,只是在POM文件更改如下
<configuration>
<maxmemory>1024M</maxmemory>
</configuration>
我最近遇到了这个问题。我有3个java应用程序,起始堆大小为1024m或1280m。 Java查看交换中的可用空间,如果没有足够的可用内存,则jvm退出。
为了解决这个问题,我不得不终止几个分配了大量虚拟内存的程序。
我在x86-64 linux和64位jvm上运行。
有时,此错误表明服务器上的物理内存和交换空间实际上已被充分利用!
我最近在一台运行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实例将正常启动,并且我能够运行我的应用程序。
(显然,对我来说,这只是一个暂时的解决方案;我还有一项未完成的任务,那就是对那台机器上运行的进程进行更彻底的检查,看看是否可以采取一些措施来降低名义上的内存使用水平,而不必求助于停止应用程序。)
我有适量的内存设置,但对我来说,它是使用64位intellij和32位jvm。一旦我切换到64位虚拟机,错误就消失了。
我也有类似的问题。我在一台64位机器上安装了32位版本的Java。
通过卸载该版本并安装64位版本的Java。我解决了这个问题。