繁体   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