Install4j:将服务图标添加到系统托盘

Install4j: adding a service icon to System tray

我通过 install4j 软件创建了一个安装程序。安装程序创建并添加在后台运行的服务。

我想知道是否可以添加一个系统托盘图标(屏幕右下角)来显示我的服务是 运行。我设法通过在主 class:

中使用以下代码使其工作
            final Image image = Toolkit.getDefaultToolkit().getImage(MyClass.class.getClassLoader().getResource("funny-icon.png"));
            final TrayIcon icon = new TrayIcon(image, "Device Agent");

            if(SystemTray.isSupported())
            {
                final SystemTray tray = SystemTray.getSystemTray();
                icon.setImageAutoSize(true);

                try
                {
                    tray.add(icon);
                    ...

上面的代码仅在我通过 IDE 执行时有效,而不是从安装程序创建的 .exe 执行。

关于如何实现这一点有什么想法吗?

不可能这样做,因为服务无法访问 UI。以前的 Windows 版本具有 "interactive service" 的概念,但自 Windows 7.

以来已将其删除