eclipse開啟時發生無法載入「jvm.dll」問題的解決方法
eclipse是知名的自由(也可以免費取用)的跨平台整合開發環境(Integreated Development Environment,簡稱IDE),主要用來開發Java,但他擁有強大的自訂能力,而使得eclipse也可以用來開發C/C++、PHP或甚至是JavaScript。而許多IDE也是基於eclipse再擴充、發展而成,像是我目前主要用來開發JavaScript的Aptana Studio 2。
問題敘述
eclipse能夠跨平台是基於Java運作環境的功勞,而他本身也是一個免安裝的檔案,理論上在良好設定的前提下,下載之後、解壓縮並直接開啟就能夠啟動。
最近為了再次找尋更完善的JavaScript IDE,所以我下載了Eclipse IDE for JavaScript Web Developers來使用。但沒想到下載完、解壓縮並開啟之後,出現了「Failed to load the JNI shared libray “D:\Program Files\Java\jre6\bin\client\jvm.dll”」的錯誤訊息,讓eclipse無法順利啟動。
這個問題顯然是我的Java環境參數哪裡弄錯了。我的電腦是Windows 7 64位元,安裝了Java的JDK 6.0.21,除了安裝路徑移至D磁碟分割之外,其他都跟預設一樣。
修改eclipse.ini,失敗
網路上可以找到兩種解決方法,一個是修改位於eclipse目錄底下的「eclipse.ini」設定檔。這個作法在「eclipse打开出现JVM terminated.Exit Code=-1错误的解决办法」這篇的後半部有提到,但我試著做卻很遺憾地沒能解決這個問題,而是需要用另一種方法來解決。
開啟eclipse時指定Java機器,成功
另一個方法是在開啟eclipse的時候,同時指定正確的Java虛擬機器路徑作為參數。作法如下:
- 找到你Java虛擬機器的路徑。以我的電腦為例子,因為Java安裝到D:\Program Files\裡面去了,所以路徑為「D:\Program Files\Java\jdk1.6.0_21\bin\javaw.exe」
- 為「eclipse.exe」建立捷徑「eclipse.exe - 捷徑」,名稱可以隨意修改。
- 在捷徑上按右鍵,進入「內容」。
- 在「捷徑」分頁中找到「目標」欄位。
- 在目標欄位資料後面加上「-vm "D:\Program Files\Java\jdk1.6.0_21\bin\javaw.exe"」,參數即是第一步中查詢的Java虛擬機器的路徑。舉例來說,原本的資料為「"D:\Program Files\eclipse\eclipse.exe"」,現在改為「"D:\Program Files\eclipse\eclipse.exe" -vm "D:\Program Files\Java\jdk1.6.0_21\bin\javaw.exe"」。
- 點擊捷徑,開啟eclipse。
開始使用eclipse吧!
結語
這其實是我第三次還是第四次遇到同樣的問題,而我卻每次都還是上網去找解決方法,找得灰頭土臉的才得到每次都一樣的解決方法。所以在此特地把這個方法寫在Blog,希望自己下次不要再這麼辛苦了。
題外話,Eclipse IDE for JavaScript Web Developers的JavaScript Editor在Aptana當中已有內建,而且也沒有Aptana JS Editor好用,著實讓人失望。下次有機會我在來分析一下JavaScript IDE的優缺點吧。
Sorry, it doesn't work for me.....
回覆刪除有人說,再裝一份 64bit 的JDK就行了,試了果然就行了,也不必再加您的 commandline argument^^
原來如此,我的JDK似乎是32 bit的才會造成這樣的緣故嗎?
回覆刪除感謝你的說明
剛剛在建置環境的時候也遇到這個問題
回覆刪除所以搜尋到您的網誌了
我說明一下我的情況
我是win7 64bit
jdk安裝的是64bit的
一開始下載的eclipse是32bit的
執行就遇到此情形,我還以為我環境變數忘記設定,但其實是有設定的
隨後下載64bit的eclipse就沒有出現這種狀況了
所以應該是jdk與eclipse的bit版本不同,才產生這種問題的
沒錯,我也遇到類似的情形,今天解決了,應該是jdk跟eclipse都要相同版本才行。
回覆刪除我win7 64,打算用eclipse開發android的。
剛開始我jdk跟eclipse都是64的,順利啟動了eclipse,但無法安裝android sdk,a-sdk說我沒裝jdk,但我明明裝了64的jdk,找了很久安裝a-sdk的方法,後來改換32的jkd,a-sdk就可以裝了,但又變成eclipse抓不到javaw,即使改了路徑也會有error code,又是因為我的eclipse是64的,最後通通換成32的就沒問題了。
結論android sdk應當是32的,所以jdk跟eclipse都得配合,繞了一大圈才發現原來是這樣。:P
喔喔,要配合jdk跟Eclipse的版本啊
回覆刪除感謝以上兩位精采的解析
丁…謝謝您,幫了一個大忙
回覆刪除送你一個讚!
To 6.樓匿名:
回覆刪除不客氣
謝啦 最近剛裝64bit JDK_1.7.0.51遇到一樣問題 捷徑連回舊版就好了 忙了一個上午 eclipse又回來了
回覆刪除To 8樓匿名:
回覆刪除恭喜你。我最近都使用NetBeans,捨棄Eclipse啊XD
謝謝大大,
回覆刪除按照您所說的設定,
果然解決問題,
不過我又出現另一個問題,
也就是出現下面的訊息。
我上網查了一下,
原來是因為JDK跟Eclipse的版本不同所造成的,
我的JDK是用32-bit,
而Eclipse是用64-bit的,
去下載64-bit的JDK,
順利解決問題了,
參考解答:http://goo.gl/q2VbS8
Java was started but returned exit code=13
C:\Program Files (x86)\Java\jre7\bin\javaw.exe
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m
-jar C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher_1.30v20120522-1813.jar
-os win32
-ws win32
-arch x86_64
-showsplash C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins\org.eclipse.platform_4.2.0.v201206081400\splash.bmp
-launcher C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\eclipse.exe
-name Eclipse
--launcher.library C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v201205221813\eclipse_1503.dll
-startup C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher_1.30v20120522-1813.jar
--launcher.overrideVmargs
-exitdata 1e30_5c
-vm C:\Program Files (x86)\Java\jre7\bin\javaw.exe
-vmargs
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m
-jar C:\Program Files\Eclipse-SDK-4.2-win32-x86_64\eclipse\\plugins/org.eclipse.equinox.launcher_1.30v20120522-1813.jar
To SHIH-CHIEH,
回覆刪除謝謝你提供的建議!
Jdk裝的是x86,Eclipse就要裝x86,同理JDK裝X64,Eclipse就要裝X64
回覆刪除To 月色,
回覆刪除感謝您精闢的解說。