解决could not create the java virtual machine问题

来源:互联网 发布:淘宝可以朋友代付吗 编辑:程序博客网 时间:2024/05/16 09:54

解决could not create the java virtual machine问题

(2009-08-27 09:05:30)
转载
标签:

eclipse

it

分类:程序员必看

打开不了myeclipse,报错“could not create the javavirtual machine”,解决问题过程如下:

1、在D:\MyEclipse\eclipse有个eclipse.ini文件,原来的配置如下:
-showsplash
com.genuitec.myeclipse.blue.product.ide
--launcher.XXMaxPermSize
256m
-vmargs
-Xms128m
-Xmx512m
-Duser.language=en
XX:PermSize=128M
-XX:MaxPermSize=256M

2、现在将原来配置改成如下所示:

-showsplash
com.genuitec.myeclipse.blue.product.ide
--launcher.XXMaxPermSize
256m
-vmargs
-Xms128m
-Xmx512m
-Duser.language=en
-XX:PermSize=64M //修改此处
-XX:MaxPermSize=128M


修改以上代码后,myeclipse便可以启动了

 

惊叹,这些参数分别是什么意思呢?google一下:

     -vmargs是表示下面是设置JVM(java虚拟机)的参数,也就是说下面都是java虚拟机的参数,对于JVM来说,内存分为堆内存和非堆内存,注意这里的堆不是c/c++里面的堆的概念,因为jvm自己管理内存,所谓堆上的内存就是jvm可以分配给java应用程序使用的内存,由-Xms和-Xmx这两个参数限定,而非堆内存则是JVM自己使用的,由-XX:PermSize和-XX:MaxPermSize这两个参数来限定。对于堆内存来讲,JVM根据剩余的堆内存的多少调整整个堆内存的大小,调整范围就是-Xms(最小)和-Xmx(最大)指定的范围,-XX:PermSize和-XX:MaxPermSize也是同样的道理,如果你不想JVM来动态调整的话,可以把最大和最小值设置相等,默认最小值是物理内存的1/64,最大值是物理内存的1/4,所以这个最大值就受到物理内存的限制(当然还会收到操作系统的限制)。

     经过实验发现,如果-Xms的值比-Xmx设置的大则启动会失败;而如果-Xmx和-XX:MaxPermSize设置的值的和比可用的物理内存还大,启动也会失败,我的第一个设置,两者的和超过了1G,而当时可用内存才700M,所以启动会失败,JVM在启动时会检测参数和实际可用内存。

原创粉丝点击