我的要求是使用processbuilder打开记事本。 如果我们运行
C:\>notepad.exe
在命令行或eclipse中(通过使用processbuilder的java),创建过程如下所示。
Name PID status UserName
notepad.exe 8380 Running Selva
该过程在任务管理器中创建,记事本也在打开,我们可以一次又一次地执行命令。
但是如果我们使用java进程构建器从Tomcat运行命令(Tomcat通过services.msc启动),则创建过程如下所示。
Name PID status UserName
notepad.exe 8380 Running SYSTEM
该过程在任务管理器中创建。但记事本未在系统中打开,我们也无法再次运行该命令。因为它正在显示, “该过程无法访问,因为它正被另一个进程使用”
为什么在tomcat中使用名称“SYSTEM”而不是“Selva”创建进程以及记事本未打开的原因。
如何解决此问题?
任何帮助将不胜感激!!
答案 0 :(得分:0)
服务在后台运行 - 无论用户是否登录。因此,他们通常无法访问 GUI。 Windows 将其 GUI 输出重定向到“隐藏”桌面。
此问题是针对 Windows 设计的,与 Java 无关。另见Swing JDialog is showing fine when I run it from eclipse but not working from windows service(services.msc)