阻止用户终止java程序?

时间:2011-10-21 04:08:00

标签: java windows jar installation startup

我想在计算机上安装一个监控系统(该程序是一个jar文件)并在每次用户登录时启动时运行它。但是,我不希望用户能够终止它,因为它不再能够被监视。

我们尝试了几种方法:

  • 将其作为服务安装 - 这里的问题是我们的程序不再起作用;它无法连接到监控它的计算机。为此,我们使用了“Yet Another Java Service Wrapper”,并查看了其他一些包装器,它们可以帮助我们将其安装为服务。

  • 在启动时运行程序(使用文件夹启动),但不给予基本用户编辑/删除/弄乱文件的权限。但是,这似乎会降低整个计算机的速度?当我们运行直接执行jar的bat文件时,不会发生这种情况。另一个问题是用户可以直接进入任务管理器并终止java进程。

  • 我们通过另一个进程尝试了前一个变体来解决被杀死进程的问题。一个会产生另一个,这两个进程将相互关联。如果一个终止,另一个检测到它并运行它再次启动它。虽然如果用户在再次重新生成之前杀死两个进程的速度足够快就会出现问题,但更大的问题是它有时会连接到其他计算机时遇到问题。当它只是一个罐子时我们没有这个问题。

有没有人知道如何解决这些问题?

这里的上下文是windows,但是如果你对linux和mac有建议那就太好了!

2 个答案:

答案 0 :(得分:1)

方法是将程序作为服务运行。您应该调查应用程序和系统防火墙之间的任何问题。如果激活了Windows防火墙,则应为java.exe或javaw.exe添加例外。

为了为您的程序提供更高的权限,您可以将服务设置为以另一个用户身份运行。您可以从服务属性中的“登录”选项卡执行此操作。

Service properties

答案 1 :(得分:0)

您希望在具有提升权限的用户下启动该程序。在WIndows上这将是管理员,linux将使用root。在Windows上,您可能需要将其作为服务启动。但我真的不知道为什么会阻碍网络通信。