2009-08-04 59 views
0

我通過Spring Controller調用一個名爲myapp.exe的exe文件;這裏是控制器中的代碼: Runtime.getRuntime().exe(「D:\ vmd \ apps \ myapp.exe」);使用Runtime.getRuntime()。exec從運行在Tomcat上的Spring控制器調用.Net基於窗口的應用程序

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成功啓動。

+0

Tomcat是否作爲Windows服務運行?我不認爲服務可以在桌面上啓動應用程序。 – 2009-08-04 17:00:38

回答

1

在Windows中,作爲服務運行的進程無法訪問常規用戶桌面。由於服務啓動的程序繼承了該屬性,因此通常不允許進入桌面。

正如你所說,Tomcat作爲服務運行,我認爲這是問題的原因。現在找不到合適的參考,抱歉。

爲什麼不讓.NET應用程序在用戶會話中自動啓動?您可以通過套接字連接到Tomcat,等待某種啓動信號到達,然後觸發映射應用程序的主窗口。

相關問題