【问题标题】:Difference between running Eclipse on jvm.dll and java.exe (or javaw.exe)在 jvm.dll 和 java.exe(或 javaw.exe)上运行 Eclipse 的区别
【发布时间】:2015-08-05 15:21:54
【问题描述】:

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


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

【问题讨论】:

    标签: eclipse windows jvm


    【解决方案1】:

    没有指定-vm时Eclipse如何启动

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

    让我们看看官方 Equinox Launcher documentation 在没有指定 -vm 时是怎么说的(强调我的):

    当没有指定-vm 时,启动器首先在eclipse 根目录的JRE 目录中查找虚拟机,然后在搜索路径中查找。如果 在任一位置都可以找到 Java,然后我们在 Window 上查找 JVM 共享库jvm.dlllibjvm.so 在 *nix 平台上)相对于该 Java 可执行文件。

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

    如您所见,jvm.dll 是首先搜索的,只有在没有找到的情况下,才使用 Java 启动器(即 java.exe 或javaw.exe) 被使用。


    使用jvm.dlljavaw.exe(或java.exe)的区别

    • 当使用 jvm.dll Eclipse 使用 JNI Invocation API 来 在当前进程中启动虚拟机。您将在任务管理器中只看到一个进程:
      eclipse.exe

    • 当使用 javaw.exe(或 java.exe)时,Eclipse 会执行该 Java 在新进程中启动虚拟机的启动器。您将在任务管理器中看到两个进程:

    1. eclipse.exe
    2. javaw.exe(或 java.exe,如果已配置)

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

    所以选择取决于你。


    其他想法

    最推荐使用的选项之一是指定特定的 JVM 以供 Eclipse 运行。这样做可以确保您绝对确定将在哪个 JVM Eclipse 中运行,并使您免受系统更改的影响,这些更改可能会改变您系统的“默认”JVM。在这里阅读更多:Specifying the JVM

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      相关资源
      最近更新 更多