繁体   English   中英

阻止用户终止Java程序?

[英]Prevent a user from terminating a java program?

我想在计算机上安装一个监视系统(该程序是一个jar文件),并在每次用户登录时在启动时运行它。 但是,我不希望用户能够终止它,因为那样以后就将无法对其进行监视。

我们尝试了几种方法:

  • 将其作为服务安装-这里的问题是我们的程序不再起作用。 它无法连接到正在监视它的计算机。 为此,我们使用了“另一个Java服务包装器”,并且还研究了其他包装器,可以帮助我们将其作为服务安装。

  • 在启动时运行该程序(使用文件夹启动),但没有赋予基本用户编辑/删除/混乱文件的权限。 但是,这似乎会减慢整个计算机的速度吗? 当我们运行直接执行jar的bat文件时,不会发生这种情况。 与此相关的另一个问题是用户可以直接转到任务管理器并终止Java进程。

  • 我们尝试了上一个版本的变体,以通过使用另一个进程来解决该进程被终止的问题。 一个将生成另一个,而这两个进程将使彼此之间保持制表符。 如果其中一个终止,则另一个检测到并运行它以重新启动。 尽管如果用户在再次重生两个进程之前足够快地杀死这两个进程,可能会出现问题,但更大的问题是,有时连接到其他计算机时会遇到问题。 当它只有1罐时,我们没有这个问题。

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

这里的上下文是Windows,但是如果您对linux和mac有任何建议,那也不错!

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

为了赋予程序更高的特权,您可以将服务设置为以其他用户身份运行。 您可以从服务属性中的“登录”选项卡中执行此操作。

服务属性

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM