【发布时间】:2012-05-26 16:03:27
【问题描述】:
我正在尝试在 Mac 上制作一个 Java 应用程序,在状态栏中放置一个图标,但我不希望 Mac 底座上的罐子图标(纸上有咖啡杯的那个)。所以我尝试使用 System.setProperty(java.awt.headless, true) 技术,但是我无法在 SystemTray 菜单栏中放置任何内容,因为我得到了 HeadlessException。如果有人知道解决此问题的方法,我们将不胜感激。
【问题讨论】:
-
理想情况下,您希望您的应用成为“UI 元素”。对于 Cocoa 应用程序,这意味着在 Info.plist 中将
LSUIElement键设置为 1。对于 Java 应用程序不知道。 -
“状态栏”是指菜单栏吗?您显然可以更改停靠图标,但我不知道以编程方式删除停靠图标的任何方法。这需要本机 Cocoa 代码和管理员权限。
-
由于“无头异常”,我想知道这是否是由于 Apple 安全问题(即受感染的网站产生静默和恶意 Java 应用程序的可能性)。
-
我只是想如果其他应用程序可以做到并且您可以同时删除这两个应用程序,那么您可以只删除一个。考虑到这是出于安全原因,我觉得这很有意义,他们不会让你两个都做。
标签: java macos statusbar dock headless