Fechar um programa a partir de outro programa

Olá pessoal…

Seguinte, tenho um projeto modularizado, onde existem 3 projetos na verdade, 3 .jar(s), 3 programas, um é o inicial, que me permite acessar os outros dois, caso exista o .jar deles no diretório de instalação. Entao a partir dessa aplicacao inicial, eu uso o comando abaixo pra rodar os outros dois programas quando o usuario clica no botao referente a cada uma.

[code]Runtime.getRuntime().exec(“java -jar C:/SistemaGestaoRural/SGC1.0.jar”);

//ou para a outra aplicacao

Runtime.getRuntime().exec(“java -jar C:/SistemaGestaoRural/SGX1.0.jar”);[/code]
O que eu quero fazer, é o seguinte, imaginem que o usuario abriu o programa inicial, e entao abriu os outros dois programas, e dai ele vai lah no programa inicial e fecha ele. O que acontece atualmente é que os outros dois programas ficam rodando.
Eu queria fechar esses outros dois programas (o SGC1.0.jar e o SGX1.0.jar) quando o usuario fechar o programa inicial…

Existe algum comando pra fechar o programa como o (java -jar …) ???
Como eu poderia fazer isso ???

Desde já grato t+

Este método Runtime.exec retorna uma instância de Process.
Na classe Process existe o método destroy que mada este processo. Você pode guardar essa instância de Process e mata-la dentro de um listener que escute quando o usuário fecha o programa principal.

Não sei se o método destroy realmente funciona pois não testei, apenas li:
http://java.sun.com/javase/6/docs/api/java/lang/Process.html#destroy()

Faça este teste!

opa BrunoBastos vlw a resposta ai…

intaum o método destroy funciona, vou implementar o listener como vc sugeriu que acho q vai resolver…

vlw t+

Beleza cara, vlw pela dica da classe Process, nunca tinha reparado nela

Bom a lógica ficou muito simples como vc falou… Eu guardo o retorno do método exec(…) de cada programa em dois objetos Process, um pra cada programa, e quando fechar a tela, verifico se esses objetos Process estao null ou não, caso nao, chamo o método destroy…

vlw t+