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

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

  • 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运行而不是启动数百次。

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

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

  • jvm.dll – 这不是一个可运行但是一个库。 可能由上述两个程序使用。