Java explorer.exe崩溃后如何将图标重新添加到系统托盘

Java explorer.exe崩溃后如何将图标重新添加到系统托盘,java,crash,systray,Java,Crash,Systray,我的java应用程序当前在系统托盘中有一个图标。但是,当系统托盘崩溃时(您可以通过关闭任务栏中的explorer.exe来模拟这种情况),系统托盘返回后,图标将消失 当我检查SystemTray.getSystemTray().getTrayIcons()以查看系统托盘中的图标时,它总是显示我的TrayIcon仍在系统托盘中,即使在它崩溃和重新加载之后,我的托盘图标在那里更长 目前,我每隔15秒左右就要删除和添加一次我的图标,但是有没有其他方法来实现这一点,这样它就不会一直消失、出现,并骚扰用户

我的java应用程序当前在系统托盘中有一个图标。但是,当系统托盘崩溃时(您可以通过关闭任务栏中的explorer.exe来模拟这种情况),系统托盘返回后,图标将消失

当我检查SystemTray.getSystemTray().getTrayIcons()以查看系统托盘中的图标时,它总是显示我的TrayIcon仍在系统托盘中,即使在它崩溃和重新加载之后,我的托盘图标在那里更长

目前,我每隔15秒左右就要删除和添加一次我的图标,但是有没有其他方法来实现这一点,这样它就不会一直消失、出现,并骚扰用户?

只是一个猜测


每隔几秒钟检查一次explorer.exe的pid。如果它已更改,请取消注册您的托盘图标,然后再次注册。

以防其他人无意中发现并想知道发生了什么,最后我不得不在几秒钟后删除并添加图标,因为Windows不会更新JVM托盘图标的状态。。。这当然不是修复它的最佳方法,但似乎没有更好的方法。

听起来这可能有效,但我如何在Java中做到这一点?我做了一次搜索,发现您可以很容易地在JVM中找到正在运行的进程或其他进程的进程id,但我不知道如何为其他进程这样做。