我试图在我的Ubuntu20.04.3LTS上运行这个解决方案 (AWT以控制JavaFX应用程序)。我尝试使用openjdk 14和17,结果是一样的:
Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: The system tray is not supported on the current platform.
at java.desktop/java.awt.SystemTray.getSystemTray(SystemTray.java:188)
at com.foo.fxtest1.JavaFxTest5.addAppToTray(JavaFxTest5.java:119)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)为了解决这个问题,我找到了这个答案:说Gnome 3.28 (used in Ubuntu 18.04) removed the System tray。我想,Ubuntu 20没有系统托盘,这就是问题所在。然而,在屏幕的右上角,我看到了以下内容:

。
如你所见,有三个应用图标-电报,Viber和闹钟。据我所知,这些图标显示在系统托盘,所以系统托盘存在。那有什么问题呢?AWT不支持Ubuntu 20系统托盘吗?有人能解释一下吗?
发布于 2022-06-29 10:03:33
这是JDK中的一个bug。问题是这里。
https://stackoverflow.com/questions/72594274
复制相似问题