运行java应用程序作为Windows服务

时间:2017-09-07 06:34:32

标签: java windows apache service daemon

我有一个带有GUI的Java应用程序(用作客户端应用程序的服务器)。即使重新启动服务器,此应用程序也必须始终运行。

为此,我使用Apache守护进程创建了一个Windows服务。

当服务器启动时,我可以看到我的服务作为系统服务运行。但是当我打开应用程序的GUI时,另一个实例就会启动。

我需要将GUI附加到重启后启动的同一个实例,这是可能的。

1 个答案:

答案 0 :(得分:1)

Windows服务(以及Unix系统上的守护进程)无法使用GUI运行,因为它在没有Windows桌面或KDE,Gnome等窗口管理系统的情况下启动。我对您的应用程序启动感到惊讶因为尝试启动GUI元素会导致错误。

您必须将GUI与服务器组件分开。然后,GUI需要通过某种协议与服务器通信。因为你已经完成了你的应用程序,我建议RMI作为首选协议,这应该是最容易实现的,因为你基本上只需要为你的类添加一些接口来获取RMI,而不是通过你的方式添加完整的复杂层拥有(从客户端接收命令的附加服务器等)。

RMI可以设置为仅侦听来自localhost的连接,因此在安全性方面你也应该很好。