【发布时间】:2011-01-01 03:32:50
【问题描述】:
最近我注意到一些应用程序在javaw 上运行(不在java 上)。它们之间有什么区别?如何在 javaw 上运行我的 Swing 应用程序?
【问题讨论】:
-
类似的问题和好的答案在这里:stackoverflow.com/a/8194750/99717。请注意,那里的问题还涉及 javaws.exe,因此在技术上不是重复的......
最近我注意到一些应用程序在javaw 上运行(不在java 上)。它们之间有什么区别?如何在 javaw 上运行我的 Swing 应用程序?
【问题讨论】:
java.exe 是控制台应用程序,而javaw.exe 是 Windows 应用程序(无控制台)。 Console 不能与 javaw.exe 一起使用。
【讨论】:
java.exe 访问其控制台。例如,从 Windows 上的浏览器中运行小程序总是使用 java.exe,即使我的 Java 控制面板设置为 隐藏控制台窗口 甚至 不启动控制台窗口.
javaw.exe 命令与 java.exe 相同,只是 javaw.exe 没有关联的控制台窗口
【讨论】:
javaw 没有关联的控制台。不一定要创建窗口(例如,当您从现有控制台窗口运行或完全在后台运行时)。
java.exe 是它等待应用程序完成的命令,直到它接受下一个命令。 javaw.exe 是不会等待应用程序完成的命令。您可以继续执行其他命令。
【讨论】:
.bat 脚本的一部分安全地使用,它会等待。但是,当您手动从cmd.exe 启动非控制台程序时,cmd.exe 不会等待并立即返回命令提示符。试试 notepad.exe 与 ping 8.8.8.8
区别在于每个可执行文件的目标subsystem。
java.exe 以CONSOLE 子系统为目标。javaw.exe 以WINDOWS 子系统为目标。【讨论】: