Вызов приложения на основе .Net Window с помощью Runtime.getRuntime (). Exec из Spring Controller, работающего на Tomcat.

StackOverflow https://stackoverflow.com/questions/1228143

Вопрос

Я вызываю exe-файл myapp.exe через Spring Controller; вот код в контроллере: Runtime.getRuntime () Exec (& Quot; D: \ \ VMD приложения \ myapp.exe & Quot;);.

myapp.exe - это приложение на C # .NET. Если я нажимаю непосредственно на myapp.exe с помощью проводника Windows, приложение открывается и запускается; однако, если я вызываю команду через Spring Controller в Tomcat, приложение не открывается; но когда я открываю диспетчер задач, я вижу, что процесс myapp.exe запущен. Тем не менее, окно для myapp.exe не открывается. В JBoss приложение успешно вызывается через Spring Controller. Кто-нибудь знает, почему приложение .NET не открывается через Tomcat?

Tomcat устанавливается как сервис. При запуске Tomcat вручную с помощью файла startup.bat, а затем при вызове myapp.exe по ссылке в веб-приложении Tomcat, myapp.exe запускается успешно. Однако я не уверен, что Tomcat запускается или нет, поскольку служба мешает правильной работе myapp.exe, потому что когда JBoss запускался как служба, myapp.exe запускался успешно.

Это было полезно?

Решение

В Windows процесс, выполняющийся как служба, не может получить доступ к обычному рабочему столу пользователя. А поскольку программа, запущенная службой, наследует это свойство, ей обычно также не разрешается выходить на рабочий стол.

Как вы утверждаете, что Tomcat работает как сервис, я думаю, что это является причиной проблемы. Извините, сейчас не могу найти подходящую ссылку для этого.

Почему ваше приложение .NET не запускается автоматически во время сеанса пользователя? Вы можете подключиться к Tomcat через сокет, ожидая появления какого-либо сигнала запуска, который затем вызовет отображение главного окна приложения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top