在jvm.dll和java.exe(或javaw.exe)上运行Eclipse之间的区别

时间:2015-05-23 18:50:15

标签: eclipse windows jvm

使用 jvm.dll java.exe 作为运行Eclipse的JVM有什么区别?

声明
我已将此问题与答案一起发布,因为我发现这些信息很有用,并希望与其他人分享。

1 个答案:

答案 0 :(得分:5)

未指定-vm时如何启动Eclipse

好的,只是为了解决一个混乱:在Windows上全新安装Eclipse没有在 eclipse.ini 文件中指定的 -vm 配置。

让我们看一下官方的 Equinox Launcher documentation在没有指定-vm的情况下所说的内容(强调我的):

  

如果未指定-vm,则启动程序首先在eclipse的根目录中的JRE目录中查找虚拟机,然后在搜索路径上查找。如果   在任一位置找到Java,然后我们在Window上查找JVM 共享库 jvm.dll libjvm.so < / em> on * nix平台)相对于Java可执行文件。

     
      
  • 如果找到JVM 共享库 ,我们加载它并使用JNI调用API启动vm
  •   
  • 如果找不到JVM共享库,我们执行Java启动程序以在新进程中启动vm
  •   

正如您所看到的, jvm.dll 是首先搜索的那个,并且只有在找不到它时,那么Java启动器(即java.exe或使用javaw.exe。

使用 jvm.dll javaw.exe (或 java.exe

之间的区别
  • 使用 jvm.dll 时,Eclipse使用JNI调用API 在当前流程中启动vm 。您将在任务管理器中只看到一个进程:
    的eclipse.exe

  • 使用 javaw.exe (或 java.exe )时Eclipse执行该Java 启动器在新进程中启动vm 。您将在任务管理器中看到两个进程:
    1) eclipse.exe
    2) javaw.exe (如果配置了 java.exe

    javaw.exe 将是 eclipse.exe 进程的子进程(子进程)。

    < / LI>

所以选择取决于你。阅读以下文章,该文章很好地解释并说明了使用 jvm.dll javaw.exe 的可能后果:Eclipse.exe and windows processes

其他想法

最常用的选项之一是指定要运行的Eclipse的特定JVM 。这样做可确保您绝对确定将运行哪个JVM Eclipse,并使您免受可能更改系统“默认”JVM的系统更改的影响。在此处阅读更多内容:Specifying the JVM