我试图在我的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
嗨,我正在为linux编写一个java应用程序(Ubuntu),它包含托盘应用程序和守护进程应用程序服务。
我能够使用yajsw作为守护进程执行主应用程序,在用户登录到系统时,我希望通知已经实现的服务(我已经编写了脚本,并将脚本放在正在执行的/etc/profile.d/文件夹中,我使用TCP套接字连接连接到主应用程序并传递登录用户名)。
现在,从主应用程序中,我想在当前登录的用户桌面中启动Tray,它将显示托盘图标(SystemTray of java.awt)和弹出菜单。我为托盘应用程序创建了单独的jar文件。
我有一个程序,运行时会在系统托盘中显示一个图标。我使用下面的代码在系统托盘区域显示一个图标:
public static void showTrayIcon() {
if (java.awt.SystemTray.isSupported()) {
st = java.awt.SystemTray.getSystemTray();
image = Toolkit.getDefaultToolkit().getImage(PongeeUtil.class.getClass().getResource("export.png
我正在将一个旧的(Visual Studio 6.0)应用程序移植到Visual Studio 2012,以便添加一些增强功能。资源视图中的应用程序图标显然有两个版本的图标,一个32x32的4位位图和一个16x16的4位位图。
在主AppDlg.cpp中有2个对SetIcon()的调用,如下所示(默认情况下由MFC应用程序向导创建):
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
但是,显示在应用程序对话窗口左上角的图标是较大的图标,缩小到16
这真让我迷惑不解。我注意到在联想T410上,Kubuntu10.10上有30%的avahi守护进程(这是top给出的值,而不是krunner的任务管理器)。
这个太高了。试图一个一个地抑制质体,我设法将CPU的使用范围缩小到系统托盘上。然后,我又做了一些测试,实际上所有的事情都是在打开系统托盘中的网络管理器并登录到我的有线连接之前。因此,要求Kubuntu使用有线连接似乎使avahi守护进程占用了CPU的30%。关闭它并不会使CPU的使用率下降。
你知道什么会导致这个问题吗?还有其他人意识到了吗?
编辑:经过几次测试后,我可以确定这是一个真正的问题,因为有线连接,它不这样做的无线连接。
EDI