Abrindo programa externo  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
viniciuspadua
JavaEvangelist
[Avatar]

Membro desde: 25/11/2006 17:21:30
Mensagens: 370
Offline

Tenho uma aplicação em swing que ao fazer uma determinada ação quero que abra um programa externo.
Estou utilizando o Runtime.getRuntime().exec("programa")

o que estou tentando fazer é assim que iniciar o programa externo a aplicação java feche automaticamente.
Ja tentei colocar um System.exit(); logo após o exec mais a aplicação java somente fecha quando o programa externo finaliza.

Fica esperado algum retorno, ou algo do tipo!

como proceder?
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Ao exercutar um programa externo à JVM da forma que você está fazendo, é necessário consumir os streams do processo para que a aplicação Java não fique travada, entretanto, isso ainda faz com que a aplicação não seja fechada.
Veja esses links:
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1
http://www.guj.com.br/java/258316-manipular-outros-programas-a-partir-do-java
http://www.guj.com.br/java/232181-dida-ao-gerar-arquivo-de-exportao-em-mysql

Que tipo de programa você está rodando? O que quer fazer?
Existem outras alternativas que talves resolvam seu problema, como usar a classe Desktop (http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/).
Você pode tentar usar o comando start (é Windows que você está usando? sua aplicação só vai rodar no Windows?). Veja aqui http://www.robvanderwoude.com/ntstart.php

[]'s

This message was edited 1 time. Last update was at 16/01/2012 14:53:37


Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
viniciuspadua
JavaEvangelist
[Avatar]

Membro desde: 25/11/2006 17:21:30
Mensagens: 370
Offline

Estamos trocando o nosso login do sistema legado para um login com biometria.

Fluxo:
1. Abertura do programa java com biometria
2. Verificação do login
3. Caso login válido abrir o programa do sistema legado e fechar aplicação do login.

No último passo a aplicação do login fica aberta (a janela some, mais o processo fica aberto) queria finaliza-la por completo!
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Entendi.
Tente as alternativas que mencionei.

[]'s

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
viniciuspadua
JavaEvangelist
[Avatar]

Membro desde: 25/11/2006 17:21:30
Mensagens: 370
Offline

Acho que sera difícil resolver o problema!

1. Com a classe Desktop consegui abrir um exe e a aplicação finalizar, mais não consegui passar um parâmetro (necessário). Isso pq o método .open necessita de um File e o file não tem parâmetro.

2. Com o comando start a tela tb fica bloqueada.

3. Tentei criar um bat e o java chamar esse bat. Mais ainda tenho que finalizar a aplicação para que o java finalize.

 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team