【问题标题】:Difference between java.exe and javaw.exejava.exe 和 javaw.exe 的区别
【发布时间】:2011-01-01 03:32:50
【问题描述】:

最近我注意到一些应用程序在javaw 上运行(不在java 上)。它们之间有什么区别?如何在 javaw 上运行我的 Swing 应用程序?

【问题讨论】:

  • 类似的问题和好的答案在这里:stackoverflow.com/a/8194750/99717。请注意,那里的问题还涉及 javaws.exe,因此在技术上不是重复的......

标签: java swing javaw


【解决方案1】:

java.exe 是控制台应用程序,而javaw.exe 是 Windows 应用程序(无控制台)。 Console 不能与 javaw.exe 一起使用。

【讨论】:

  • 我要补充一点,这里的“控制台应用程序”并不一定意味着“这是从控制台运行的”,只是允许java.exe 访问其控制台。例如,从 Windows 上的浏览​​器中运行小程序总是使用 java.exe,即使我的 Java 控制面板设置为 隐藏控制台窗口 甚至 不启动控制台窗口.
  • 以下答案对我来说似乎更好,并且有 Java 文档参考:stackoverflow.com/a/8194750/99717
【解决方案2】:

javaw.exe 命令与 java.exe 相同,只是 javaw.exe 没有关联的控制台窗口

【讨论】:

  • 技术上更正确:javaw 没有关联的控制台。不一定要创建窗口(例如,当您从现有控制台窗口运行或完全在后台运行时)。
【解决方案3】:

java.exe 是它等待应用程序完成的命令,直到它接受下一个命令。 javaw.exe 是不会等待应用程序完成的命令。您可以继续执行其他命令。

【讨论】:

  • 不 javaw.exe 也不显示控制台输出 youtube.com/watch?v=AQUAyJYwJ6Q 0:57 i.imgur.com/TGsm45f.png
  • 这个答案不正确。 javaw.exe 确实 等到程序完成。例如,它可以作为.bat 脚本的一部分安全地使用,它会等待。但是,当您手动cmd.exe 启动非控制台程序时,cmd.exe 不会等待并立即返回命令提示符。试试 notepad.exeping 8.8.8.8
【解决方案4】:

区别在于每个可执行文件的目标subsystem

  • java.exeCONSOLE 子系统为目标。
  • javaw.exeWINDOWS 子系统为目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-05
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    相关资源
    最近更新 更多