首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java System Tray Application in Linux (Ubuntu)从服务(守护进程)启动

Java System Tray Application in Linux (Ubuntu)从服务(守护进程)启动
EN

Stack Overflow用户
提问于 2013-11-13 10:24:02
回答 2查看 1.5K关注 0票数 2

嗨,我正在为linux编写一个java应用程序(Ubuntu),它包含托盘应用程序和守护进程应用程序服务。

我能够使用yajsw作为守护进程执行主应用程序,在用户登录到系统时,我希望通知已经实现的服务(我已经编写了脚本,并将脚本放在正在执行的/etc/profile.d/文件夹中,我使用TCP套接字连接连接到主应用程序并传递登录用户名)。

现在,从主应用程序中,我想在当前登录的用户桌面中启动Tray,它将显示托盘图标(SystemTray of java.awt)和弹出菜单。我为托盘应用程序创建了单独的jar文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-14 17:21:08

在/etc/X11/Xsession.d/98script下添加了脚本文件,该脚本将在会话后在用户登录时调用,这样您就可以获得$DISPLAY值,这对于java托盘应用程序在会话中启动非常重要。从调用守护进程java应用程序的守护进程java应用程序(从守护进程java应用程序监听tcp端口)中,执行startapp脚本,传递已登录的用户名及其在startapp脚本中的显示、导出、显示和导出用户名,并执行托盘应用程序,该应用程序将在用户会话中启动,托盘将显示在相同的显示区域中。

票数 0
EN

Stack Overflow用户

发布于 2013-11-13 10:32:40

一种方法是在另一个进程中启动托盘应用程序。

代码语言:javascript
复制
Process p = Runtime.
               getRuntime().
               exec(new String[]{"bash","-c","java -jar /path/to/yourjar"});

或者,您可以只使用操作系统。Gnome、KDE和Unity都支持在登录时自动启动应用程序。例如,在Gnome上,~/.config/autostart/中的脚本在登录时会自动启动。

就我个人而言,我认为最好的方法是

  1. 使用OS在登录时自动启动系统托盘应用程序。
  2. 初始化期间,检查守护进程是否从系统托盘应用程序中运行。
  3. 显示来自守护进程的更新,或者在deamon不可用时显示警告。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19951238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档