Chamar uma aplicação baseada no Janela Net usando Runtime.getRuntime (). Exec de um controlador de mola em execução no Tomcat

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

Pergunta

Eu estou chamando um arquivo EXE chamado myapp.exe via um controlador de Primavera; aqui está o código no controlador: Runtime.getRuntime () exec ( "D: \ cc \ apps \ myapp.exe");.

myapp.exe é uma aplicação C # .NET. Se eu clicar diretamente no myapp.exe usando o Windows Explorer, o aplicativo abre-se e é executado; no entanto, se eu chamar o comando através de um controlador de Primavera dentro Tomcat, a aplicação não se abre; mas, quando eu abrir o Gerenciador de Tarefas eu posso ver que o processo myapp.exe está em execução. No entanto, a janela para myapp.exe não abrir. No JBoss, o aplicativo é invocado com sucesso através do controlador de Primavera. Alguém sabe por que o aplicativo .NET não abre via Tomcat?

Tomcat é instalado como um serviço. Ao iniciar o Tomcat manualmente usando o arquivo startup.bat, e, em seguida, invocando myapp.exe partir de um link dentro do webapp Tomcat, lançamentos myapp.exe com sucesso. No entanto, eu não estou certo sobre tempo ou não Tomcat a ser iniciado como um serviço está impedindo myapp.exe de funcionar corretamente, porque quando JBoss foi iniciado como um serviço, myapp.exe lançado com sucesso.

Foi útil?

Solução

No Windows, um processo em execução como um serviço não pode acessar o desktop do usuário regular. E uma vez que um programa iniciado por uma herda serviços desta propriedade, que normalmente não é permitido para chegar à área de trabalho também.

Como você estado, que o Tomcat está sendo executado como serviço, penso que esta é a causa do problema. Não consegue encontrar uma referência adequada para isso agora, me desculpe.

Por que não ter o seu aplicativo .NET começar automaticamente em uma sessão de usuário? Você pode conectar-se ao Tomcat via socket, esperando por algum tipo de sinal de partida para chegar, o que, em seguida, acionar o mapeamento janela principal do aplicativo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top