tomcat에서 실행되는 스프링 컨트롤러에서 runtime.getRuntime (). EXEC를 사용하여 .NET 창 기반 응용 프로그램 호출

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

문제

스프링 컨트롤러를 통해 myapp.exe라는 EXE 파일을 호출하고 있습니다. 컨트롤러의 코드는 다음과 같습니다.

myapp.exe는 c# .net 응용 프로그램입니다. Windows 탐색기를 사용하여 MyApp.exe를 직접 클릭하면 응용 프로그램이 열리고 실행됩니다. 그러나 Tomcat 내의 스프링 컨트롤러를 통해 명령을 호출하면 응용 프로그램이 열리지 않습니다. 그러나 작업 관리자를 열면 myapp.exe 프로세스가 실행중인 것을 알 수 있습니다. 그럼에도 불구하고 myapp.exe의 창이 열리지 않습니다. Jboss에서는 응용 프로그램이 스프링 컨트롤러를 통해 성공적으로 호출됩니다. .NET 응용 프로그램이 Tomcat을 통해 열리지 않는 이유를 아는 사람이 있습니까?

Tomcat은 서비스로 설치됩니다. startup.bat 파일을 사용하여 수동으로 Tomcat을 시작한 다음 Tomcat WebApp 내의 링크에서 myApp.exe를 호출하면 myapp.exe가 성공적으로 시작됩니다. 그러나 JBoss가 서비스로 시작되었을 때 MyApp.exe가 성공적으로 시작 되었기 때문에 서비스가 MyApp.exe가 제대로 실행되는 것을 방지 할 때 Tomcat이 시작된 것에 대해 확신하지 못합니다.

도움이 되었습니까?

해결책

Windows에서 서비스로 실행되는 프로세스는 일반 사용자 데스크탑에 액세스 할 수 없습니다. 그리고 서비스가 시작된 프로그램은이 속성을 물려 받기 때문에 일반적으로 데스크탑에 도달 할 수 없습니다.

당신이 말한 것처럼, Tomcat은 서비스로 실행되고 있다고 말하면, 이것이 문제의 원인이라고 생각합니다. 지금 당장 적절한 참조를 찾을 수 없습니다. 죄송합니다.

사용자 세션에서 .NET 응용 프로그램이 자동으로 시작되지 않겠습니까? 소켓을 통해 Tomcat에 연결하여 어떤 종류의 시작 신호가 도착하기를 기다릴 수 있으며, 이로 인해 애플리케이션의 기본 창이 트리거됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top