在java中为系统托盘创建单个实例

我正在使用java创建的桌面应用程序.我们正在为应用程序的Windows版本(用于在Windows O.S.上运行)工作.当我们运行我们的应用程序时,它会使用systemtray as在桌面上创建一个托盘图标

SystemTray tray = SystemTray.getSystemTray();

我正在创建系统托盘的单个实例,我在应用程序的主类中创建.

我正在为我的应用程序创建exe.我的问题是当我运行我的应用程序的exe文件时,它每次都会创建托盘图标.

我想在我的应用程序中只在桌面上显示一个托盘图标并作为服务运行.只有在卸载应用程序时才会删除此图标.它应该在后台运行作为服务.

我没有任何方式可以帮助我将我的应用程序作为服务运行,并且应该只有一个实例在后台运行.

我想通过创建托盘图标作为服务来运行我的应用程序,并且应该存在单个实例.请指导我这个问题.

感谢您提前提出的所有宝贵建议.

最佳答案
正如Mudassir所说,你应该在启动程序时添加一个检查,试图找到另一个正在运行的应用程序实例.这可以通过在启动时创建特定文件并在关闭删除它来完成.如果启动应用程序时文件已存在,则表示正在运行另一个实例.
您也可以使用进程间通信,但它比简单文件更难.

对于“服务”部分,您可以在启动时隐藏主窗口,因此您的应用程序将像Windows服务一样运行.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...