簡體   English   中英

在jvm.dll和java.exe(或javaw.exe)上運行Eclipse之間的區別

[英]Difference between running Eclipse on jvm.dll and java.exe (or javaw.exe)

使用jvm.dlljava.exe作為運行Eclipse的JVM有什么區別?


免責聲明
我將這個問題和答案一起發布了,因為我發現此信息很有用,並希望與他人分享。

未指定-vm時如何啟動Eclipse

好的,只是為了解決一個混亂: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.dlljavaw.exe (或java.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.dlljavaw.exe的可能后果: Eclipse.exe和Windows進程


其他想法

最推薦使用的選項之一是為Eclipse 指定一個特定的JVM 這樣做可以確保您完全確定將在哪個JVM Eclipse中運行,並使您免受可能會更改系統“默認” JVM的系統更改的影響。 在此處了解更多信息: 指定JVM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM