我正在编写Java应用程序,它完全不需要GUI。它通过命令行在终端运行,一切都很好。但现在我需要添加系统托盘的图标,以便向用户提供一些通知。我尝试使用java.awt.SystemTray和java.awt.TrayIcon。虽然图标几乎可以工作(不考虑外观和感觉问题),但是我的Mac OS将新的应用程序窗口放到Dock上,就像运行整个Swing应用程序一样。
所以,问题是:我的无GUI的Java应用程序是否仍然完全不可见,但对于托盘图标?在Mac OS,Windows和Linux中。
编辑:我试过了
System.setProperty("apple.awt.UIElement", "true");
这帮助我摆脱了Dock图标,但现在
trayIcon.displayMessage("Run!", null, TrayIcon.MessageType.ERROR);
不显示消息窗口。