eclipse 啟動,同時啟動的虛擬機嗎?

jvm什麼時候啟動的,什麼時候關閉的?eclipse的配置文件eclipse.ini裡面的參數是用來啟動虛擬機的嗎?那麼在eclipse裡面調試程序使用到參樹和eclipse.ini有什麼區別?


Eclipse是一個用Java實現的IDE。它的上層邏輯都是用Java寫的,GUI庫底層用了SWT有一部分native組件。

在Windows上跑Eclipse的話,那個eclipse.exe其實只是一個「啟動程序」(launcher),通過JNI來啟動Eclipse真正的Java本體。

Equinox Launcher

所以,當eclipse.ini通過JNI的API找到了合適的JVM,準備進入Eclipse的Java本體的時候,JVM就啟動了。而在退出Eclipse的時候,這個JVM才會退出。

eclipse.ini 配置文件就是用來配置這個運行Eclipse用的JVM實例的。

在Eclipse JDT里寫Java程序,如果實用debug或者run功能,那麼Eclipse JDT會另外啟動一個JVM進程來執行指定的Java程序。項目配置里debug/run里的arguments就是用來配置這個另外的JVM進程用的。


Eclipse 本來就是一個RCP技術軟體,本來就是要Jvm啟動Eclipse跑起來的


有個載入程序,讀取.ini參數,啟動虛擬機啟動eclipse,eclipse內啟動運行項目是另外的虛擬機,可以在run里設置,應該不受.ini的影響


我覺得是的。因為你同時打開eclipse跟myeclipse的時候只有一個JVM可以用。


應該沒吧,反正我不會Java


打開eclipse的時候

打開一個命令行窗口

輸入

ps aux | grep eclipse

你就知道了。


其實你可以看下,在eclipse目錄里有個ini文件,裡面就是啟動eclipse的JVM參數。

如果你強退eclipse,他會告訴你我們JVM出什麼錯了。然後列出所有JVM的參數。

更粗暴的還可以直接visualvm去連繫統里的eclipse,是可以連接的。


推薦閱讀:

如何評價shadow攜手兩儀落、雞蛋黃、sen等組建eclipse戰隊出征TI7?
請問買windows 系統的筆記本或者台式機,怎麼配置能很好運行AS 或eclipse ?謝謝!?
tar包和jar包和war包的區別?
Xcode 和 Android Studio,Eclipse等安卓開發工具比怎麼樣?
有沒有在雲端的IDE?比如一個遠程的Eclipse之類的?

TAG:Java | Java虛擬機JVM | Java編程 | Eclipse | Linux開發 |