0

我正在通过 Spring Controller 调用一个名为 myapp.exe 的 exe 文件;这是控制器中的代码: Runtime.getRuntime().exec("D:\vmd\apps\myapp.exe");

myapp.exe 是一个 C# .NET 应用程序。如果我使用 Windows 资源管理器直接单击 myapp.exe,应用程序将打开并运行;但是,如果我通过 Tomcat 中的 Spring Controller 调用命令,则应用程序不会打开;但是,当我打开任务管理器时,我可以看到 myapp.exe 进程正在运行。然而,myapp.exe 的窗口并没有打开。在 JBoss 中,应用程序通过 Spring Controller 成功调用。有谁知道为什么 .NET 应用程序不能通过 Tomcat 打开?

Tomcat 作为服务安装。使用 startup.bat 文件手动启动 Tomcat,然后从 Tomcat webapp 中的链接调用 myapp.exe 时,myapp.exe 会成功启动。但是,我不确定 Tomcat 作为服务启动是否会阻止 myapp.exe 正常运行,因为当 JBoss 作为服务启动时,myapp.exe 成功启动。

4

1 回答 1

1

在 Windows 中,作为服务运行的进程无法访问常规用户桌面。而且由于服务启动的程序继承了这个属性,通常也不允许它进入桌面。

正如您所说,Tomcat 作为服务运行,我认为这是问题的原因。目前找不到合适的参考资料,抱歉。

为什么不让您的 .NET 应用程序在用户会话中自动启动?您可以通过套接字连接到 Tomcat,等待某种启动信号到达,然后触发映射应用程序的主窗口。

于 2009-08-04T21:37:54.597 回答