我经历过
无处解释使用此标志的好处。
这是性能优势吗?如果是的话,是否会有一个粗略的定义,将会有多少性能优势? (我知道性能问题的答案完全取决于具体情况,但是如果有人报告这样做会带来好处,那就太好了)。
无头和非无头模式是不同的,它们具有不同的功能集。如果你只需要做一些简单的事情,比如字体渲染,那么你可以在无头模式下进行。
您可以随时查看JDK源的内容,并亲自查看哪些方法依赖于非无头模式。但在我看来,即使性能提升可以忽略不计,最好还是传递java.awt.headless(如果你不需要“完整”的GUI模式)。
任何供应商都可以使用此属性。如果你有完整的GUI,你永远不知道他们是否会做某事。因此,我的经验法则是:始终对控制台应用程序和服务器使用java.awt.headless。它不会伤害。
一个可能的好处是,如果您在尝试在窗口中执行其他操作时调用应用程序(可能多次调用该应用程序),则在应用程序以无头模式运行时,它不会破坏键盘/鼠标焦点。
至少在Mac上我运行脚本时遇到了很大的问题,该脚本在尝试在另一个窗口中编辑时每隔几秒就重复运行一个java应用程序。无头模式修复了这个问题。