Llamar a una aplicación basada en Windows .Net usando Runtime.getRuntime (). Exec desde un controlador Spring que se ejecuta en Tomcat

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

Pregunta

Estoy llamando a un archivo exe llamado myapp.exe a través de un controlador Spring; Aquí está el código en el controlador: Runtime.getRuntime (). Exec (" D: \ vmd \ apps \ myapp.exe ");

myapp.exe es una aplicación C # .NET. Si hago clic directamente en myapp.exe usando el Explorador de Windows, la aplicación se abre y se ejecuta; sin embargo, si llamo al comando a través de un controlador Spring dentro de Tomcat, la aplicación no se abre; pero, cuando abro el Administrador de tareas, puedo ver que el proceso myapp.exe se está ejecutando. Sin embargo, la ventana para myapp.exe no se abre. En JBoss, la aplicación se invoca con éxito a través del controlador Spring. ¿Alguien sabe por qué la aplicación .NET no se abre a través de Tomcat?

Tomcat está instalado como un servicio. Al iniciar Tomcat manualmente utilizando el archivo startup.bat, y luego invocar myapp.exe desde un enlace dentro de la aplicación web Tomcat, myapp.exe se inicia con éxito. Sin embargo, no estoy seguro de si Tomcat se está iniciando o no, ya que un servicio impide que myapp.exe se ejecute correctamente, porque cuando JBoss se inició como un servicio, myapp.exe se lanzó correctamente.

¿Fue útil?

Solución

En Windows, un proceso que se ejecuta como un servicio no puede acceder al escritorio del usuario normal. Y dado que un programa iniciado por un servicio hereda esta propiedad, por lo general tampoco está permitido acceder al escritorio.

Como usted dice, que Tomcat se está ejecutando como servicio, creo que esta es la causa del problema. No puedo encontrar una referencia adecuada para esto en este momento, lo siento.

¿Por qué no hacer que su aplicación .NET se inicie automáticamente en una sesión de usuario? Puede conectarse al Tomcat a través del zócalo, esperando que llegue algún tipo de señal de inicio, que luego activaría el mapeo de la ventana principal de la aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top