2009-08-04 5 views
0

私は、Spring Controller経由でmyapp.exeと呼ばれるexeファイルを呼び出しています。ここにコントローラのコードがあります: Runtime.getRuntime()。exec( "D:\ vmd \ apps \ myapp.exe");Tomcat上で動作するSpring ControllerからRuntime.getRuntime()。execを使用して.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 Webアプリケーション内のリンクからmyapp.exeを呼び出すと、myapp.exeが正常に起動します。しかし、JBossがサービスとして起動されたときにmyapp.exeが正常に起動したため、Tomcatが起動してサービスが開始されると、myapp.exeが正しく実行されなくなります。

+0

TomcatはWindowsサービスとして動作していますか?私はサービスがデスクトップ上でアプリケーションを起動できるとは思わない。 –

答えて

1

Windowsでは、サービスとして実行されているプロセスは、通常のユーザーデスクトップにアクセスできません。また、サービスによって開始されたプログラムはこのプロパティを継承するため、通常はデスクトップにアクセスすることもできません。

Tomcatがサービスとして実行されていると述べているので、これが問題の原因だと思います。この時点で適切な参照を見つけることができません。申し訳ありません。

なぜ.NETアプリケーションがユーザーセッションで自動的に起動しないのですか?何らかの種類の開始信号が到着するのを待って、ソケット経由でTomcatに接続すると、アプリケーションのメインウィンドウへのマッピングが開始されます。

関連する問題