[英]Difference between running Eclipse on jvm.dll and java.exe (or javaw.exe)
使用jvm.dll和java.exe作為運行Eclipse的JVM有什么區別?
免責聲明
我將這個問題和答案一起發布了,因為我發現此信息很有用,並希望與他人分享。
好的,只是為了解決一個混亂:Windows上的Eclipse全新安裝在eclipse.ini文件中沒有指定-vm配置。
讓我們看看Equinox Launcher官方文檔中有關未指定-vm時的情況的說明(強調我的情況):
如果未指定-vm,啟動程序將首先在eclipse根目錄的JRE目錄中查找虛擬機,然后在搜索路徑中查找。 如果在任一位置都找到Java,則我們將尋找相對於該Java可執行文件的JVM 共享庫 (Window上的jvm.dll ,* nix平台上的libjvm.so )。
- 如果找到了JVM 共享庫 ,我們將其加載並使用JNI調用API來啟動虛擬機。
- 如果未找到JVM共享庫 ,我們將執行Java啟動器以新流程啟動vm。
如您所見,首先搜索的是jvm.dll ,只有在未找到的情況下,才使用Java啟動器(即java.exe或javaw.exe)。
當使用jvm.dll時, Eclipse使用JNI Invocation API 在當前進程中啟動vm。 您將在任務管理器中僅看到一個進程:
eclipse.exe
當使用javaw.exe (或java.exe )時,Eclipse執行該Java Launcher以在新進程中啟動vm。 您將在任務管理器中看到兩個流程:
1) eclipse.exe
2) javaw.exe (如果已配置,則為java.exe )
javaw.exe將成為eclipse.exe進程的子進程 (子進程)。
因此,選擇取決於您。 閱讀下面的文章,它很好地解釋和說明了使用jvm.dll或javaw.exe的可能后果: Eclipse.exe和Windows進程
最推薦使用的選項之一是為Eclipse 指定一個特定的JVM 。 這樣做可以確保您完全確定將在哪個JVM Eclipse中運行,並使您免受可能會更改系統“默認” JVM的系統更改的影響。 在此處了解更多信息: 指定JVM
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.