java.exe,javaw.exe和jvm.dll之间的区别

时间:2011-12-14 10:57:03

标签: java jvm

使用java.exe,javaw.exe和jvm.dll运行应用程序(例如Eclipse)有什么区别?另外,它在性能方面有什么不同吗?

2 个答案:

答案 0 :(得分:44)

  • jvm.dll是JVM的实际Windows实现(或更好,主要入口点)。 C或C ++应用程序可以使用此DLL来运行嵌入式Java运行时,这将允许应用程序直接与JVM连接,例如,如果他们想使用Java作为其GUI。

  • java.exe是DLL的包装器,因此人们可以在不需要自定义启动器应用程序的情况下实际运行Java类。它是一个Win32控制台应用程序,因此如果不从批处理文件运行exe,Windows将打开一个新的命令提示符窗口。

  • javaw.exe是一个类似java.exe的包装器,但它是一个Win32 GUI应用程序。 Windows不必打开命令提示符窗口,这正是您要运行打开自己的窗口的GUI应用程序。

编辑:除了进程创建和初始化的开销之外,这些不应该对性能产生任何影响。

最重要的是:它不重要;如果你担心这个问题,你可能真的想让Java继续运行而不是数百次启动它。

答案 1 :(得分:8)

  • java.exe - 从包含main()方法的指定类开始运行Java程序(需要指定类和/或JAR)。

  • javaw.exe - 如上所述,但不创建Windows命令提示符(适用于不需要控制台的Swing程序)。

  • jvm.dll - 这不是一个可运行的,而是一个库。可能被上述两个程序使用。