Appel d'une application basée sur une fenêtre .NET à l'aide de Runtime.getRuntime (). Exec à partir d'un contrôleur Spring s'exécutant sur Tomcat

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

Question

J'appelle un fichier exe appelé myapp.exe via un contrôleur Spring; voici le code dans le contrôleur: Runtime.getRuntime (). Exec ("D: \ vmd \ apps \ myapp.exe");

myapp.exe est une application C # .NET. Si je clique directement sur myapp.exe à l'aide de l'Explorateur Windows, l'application s'ouvre et s'exécute. Cependant, si j'appelle la commande via un contrôleur Spring dans Tomcat, l'application ne s'ouvre pas. mais, lorsque j'ouvre le Gestionnaire des tâches, je constate que le processus myapp.exe est en cours d'exécution. Néanmoins, la fenêtre pour myapp.exe ne s'ouvre pas. Dans JBoss, l'application est appelée avec succès via le contrôleur Spring. Quelqu'un sait-il pourquoi l'application .NET ne s'ouvre pas via Tomcat?

Tomcat est installé en tant que service. Lors du démarrage manuel de Tomcat à l'aide du fichier startup.bat, puis de l'appel de myapp.exe à partir d'un lien de la webapp Tomcat, myapp.exe est lancé avec succès. Cependant, je ne sais pas si Tomcat démarré en tant que service empêche myapp.exe de fonctionner correctement, car lorsque JBoss a été démarré en tant que service, myapp.exe a été lancé avec succès.

Était-ce utile?

La solution

Sous Windows, un processus exécuté en tant que service ne peut pas accéder au bureau de l'utilisateur standard. Et puisqu'un programme lancé par un service hérite de cette propriété, il n'est généralement pas autorisé à accéder au bureau.

Lorsque vous déclarez que Tomcat fonctionne en tant que service, je pense que ceci est la cause du problème. Impossible de trouver une référence appropriée pour le moment, désolé.

Pourquoi ne pas laisser votre application .NET démarrer automatiquement dans une session utilisateur? Vous pouvez vous connecter à Tomcat via un socket en attendant l’arrivée d’un signal de démarrage, ce qui déclencherait le mappage de la fenêtre principale de l’application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top