想在Tomcat中作为服务运行打开记事本

时间:2015-06-08 11:34:44

标签: java tomcat

我试过这个:

Runtime.getRuntime().exec("notepad");

当我从控制台运行tomcat时工作正常。当我尝试使用tomcat作为服务时,我能够在任务管理器中看到但不能在前台看到。

我只在服务器计算机上尝试该方案。

1 个答案:

答案 0 :(得分:1)

当没有用户登录到计算机时,Windows服务就是在无人值守的情况下在后台运行。仅作为指定用户运行是不够的 - 您特别需要连接到该用户的桌面。这样做会给你的tomcat进程带来巨大的系统权限 - 因此你不应该这样做,并以不同的方式设计你的应用程序。

您可以做的是:在用户的桌面上运行服务器进程(例如,它可以最小化到Windows托盘)并从tomcat连接到它。当应用程序在那里时,tomcat将找到它并可以将其请求转发给它(例如打开记事本)。如果不存在,用户显然没有登录。

当您通过TCP进行此通信时,从用户帐户角度来看,没有任何限制您 - 在另一个用户的图形上下文中执行会非常复杂。出于安全方面的良好原因。