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



我试过了:

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

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

windows服务就是在没有用户登录的情况下在后台无人值守地运行。仅以指定用户的身份运行是不够的——您还需要连接到该用户的桌面。这样做会给你的tomcat进程在系统上的巨大权限——因此你不应该这样做,并以不同的方式设计你的应用程序。

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

当您通过TCP进行此通信时,从用户帐户的角度来看,没有什么可以限制您-在另一个用户的图形上下文中执行要复杂得多。

最新更新