"could not create the java virtual machine"啓動eclipse報錯

今天準備使用eclipse寫python腳本,剛啓動eclipse,“啪”彈出一個messagebox,報錯“could not create the java virtual machine ”,暈了,前段時間還用它寫過程序,怎麼突然出這種錯誤,打開任務管理器一看,因爲開了幾個VS2005,內存已經被消耗得差不多了,本來2048M的內存,現在只剩下700多M了,難道是內存不夠,java虛擬機創建失敗?

      打開到eclipse安裝文件夾下的eclipse.ini文件,內容如下:

 

-vmargs
-Xms512M
-Xmx1024M
-XX:PermSize=64M
-XX:MaxPermSize=128M


      暫時不知道什麼意思,但是知道是控制eclipse內存消耗的,修改如下:

 

-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M

 

      再次啓動eclipse,可以了,驚歎,這些參數分別是什麼意思呢?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在啓動時會檢測參數和實際可用內存。

      【End】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章