Abrindo programa externo

4 respostas
viniciuspadua

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?

4 Respostas

davidbuzatto

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

viniciuspadua

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

Entendi.
Tente as alternativas que mencionei.

[]'s

viniciuspadua

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.

Criado 16 de janeiro de 2012
Ultima resposta 17 de jan. de 2012
Respostas 4
Participantes 2