嗨,我正在为linux编写一个java应用程序(Ubuntu),它包含托盘应用程序和守护进程应用程序服务。
我能够使用yajsw作为守护进程执行主应用程序,在用户登录到系统时,我希望通知已经实现的服务(我已经编写了脚本,并将脚本放在正在执行的/etc/profile.d/文件夹中,我使用TCP套接字连接连接到主应用程序并传递登录用户名)。
现在,从主应用程序中,我想在当前登录的用户桌面中启动Tray,它将显示托盘图标(SystemTray of java.awt)和弹出菜单。我为托盘应用程序创建了单独的jar文件。
发布于 2013-11-14 17:21:08
在/etc/X11/Xsession.d/98script下添加了脚本文件,该脚本将在会话后在用户登录时调用,这样您就可以获得$DISPLAY值,这对于java托盘应用程序在会话中启动非常重要。从调用守护进程java应用程序的守护进程java应用程序(从守护进程java应用程序监听tcp端口)中,执行startapp脚本,传递已登录的用户名及其在startapp脚本中的显示、导出、显示和导出用户名,并执行托盘应用程序,该应用程序将在用户会话中启动,托盘将显示在相同的显示区域中。
发布于 2013-11-13 10:32:40
一种方法是在另一个进程中启动托盘应用程序。
Process p = Runtime.
getRuntime().
exec(new String[]{"bash","-c","java -jar /path/to/yourjar"});或者,您可以只使用操作系统。Gnome、KDE和Unity都支持在登录时自动启动应用程序。例如,在Gnome上,~/.config/autostart/中的脚本在登录时会自动启动。
就我个人而言,我认为最好的方法是
https://stackoverflow.com/questions/19951238
复制相似问题