2012-06-20 65 views
0

我:如何增加Eclipse的堆大小?

  1. 64位的Win 7
  2. 64 JROCKIT 1.6
  3. 64位的Eclipse

的eclipse.ini:

-startup 
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar 
--launcher.library 
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810 
-showsplash 
org.eclipse.platform 
--launcher.defaultAction 
openFile 
--launcher.XXMaxPermSize 
512m 
-vmargs 
-Xms512m 
-Xmx1024m 
-Xmn256m 
-XX:MaxPermSize=512m 
-XX:GCTimeRatio=2 
-XX:ParallelGCThreads=8 
-XX:+UseParNewGC 
-XX:MaxGCPauseMillis=2000 
-XX:+DisableExplicitGC 
-Dsun.lang.ClassLoader.allowArraySyntax=true 
-Dweblogic.home=D:\Oracle\Middleware10.3.4\wlserver_10.3 
-Dharvester.home=D:\Oracle\Middleware10.3.4\Oracle_OSB1\harvester 
-Dosb.home=D:\Oracle\Middleware10.3.4\Oracle_OSB1 
-Dosgi.bundlefile.limit=750 
-Dosgi.nl=en_US 

我要增加堆大小,但是當我增加-Xmx1024m-Xmx2048m

它說:

無法創建Java虛擬機。

再說我介紹-vm參數我的eclipse.ini爲

-vm 
D:\Java\jrockit-jdk1.6.0_26-R28.1.4-4.0.1\jre\bin\jrockit\jvm.dll 

-vmargs之前),它說:

無法加載JNI共享庫。

怎麼辦?如何增加Eclipse的堆大小?

+0

我會使用32位Eclipse。 – Kai

回答

3

與您的斷言相反,您有一個32位版本的Eclipse。我可以通過eclipse.ini文件中的org.eclipse.equinox.launcher參考來判斷。一個64位的eclipse會有這個名爲「... win32.x86_64 ...」的文件,而不是「win32.x86 ...」。

由於Eclipse具有本地組件,因此必須在32位Eclipse中使用32位JVM。當您嘗試強制使用64位JVM時,您會看到「無法加載JNI共享庫」問題,因爲安裝時的Eclipse本機組件與64位JVM不兼容。

就能夠增加安裝堆而言......您不太可能將堆增加到2048米。啓動時,JVM嘗試根據最大堆大小預留連續內存塊。 32位地址空間總計爲4G,但它被各種系統DLL分解爲各種位置的內存。不同系統之間的最大連續內存會有所不同,但找到連續的2048米的區塊是非常不尋常的。

對此我不是100%肯定的,但我聽說Jrockit沒有連續的內存要求。如果是這樣,您可以通過像嘗試切換到Jrockit來解決您的問題,但是您需要安裝Jrockit的32位版本。

當然,更好的解決方案是轉向64位版本的Eclipse。它看起來像你的Eclipse安裝來自OSB安裝程序。這些僅適用於32位版本,但我相信OSB安裝程序支持將OSB插件安裝到包含Oracle Enterprise Pack for Eclipse(OEPE)的現有Eclipse安裝中。 OEPE已預先構建了64位Eclipse工具包,但您需要確定OSB插件需要哪種版本的Eclipse和OEPE(它將是一個特定版本)。

祝你好運。

UPDATE:剛想起別的東西......有時很容易,如果你使用的javaw.exe代替jvm.dll的內存管理是這兩個入口點之間的不同具有較高的XMX設置來運行。要嘗試此操作,請找到32位JVM的javaw.exe的路徑,並通過-vm開關指定它,就像您試圖在您的問題中指定替代jvm.dll一樣。

+1

謝謝,我有「_64」,但不知怎的,它不在我的ini中。我再次解壓,現在正在使用3g堆。 另外,我不得不指定'jvm.dll'作爲引用'javaw.exe'的工作,它一直在詢問JNI庫。 –