使用java.exe,javaw.exe和jvm.dll运行应用程序(例如Eclipse)有什么区别?另外,它在性能方面有什么不同吗?
答案 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
- 这不是一个可运行的,而是一个库。可能被上述两个程序使用。