[RESOLVIDO]Finalizar processo

Ola pessoal, Me deparei com um problema em que preciso finalizar toda e qualquer versão da minha aplicação que estiver rodando.

Alguem sabe como fazer isso? Finalizar um jar que esteja rodando na JVM?

system.exit(0);

Não era bem isso cara, system.exit eu já uso, só que eu quero finalizar outros processos do mesmo jar que estejam abertos.

Seria como ter o photoshop fechando o internet Explorer , entedeu???/

se for no linux c pode fazer um ps -ef | java e da um kill em todos os processos…

[quote=luciano@@]Não era bem isso cara, system.exit eu já uso, só que eu quero finalizar outros processos do mesmo jar que estejam abertos.

Seria como ter o photoshop fechando o internet Explorer , entedeu???/
[/quote]

luciano, programas java só exergam o que existe dentro da jvm. Se o outro software for java ok, se não, tem que arrumar outra solução, como jni.

É isso eu tenho um programa java, este programa pode estar aberto várias vezes pelo usuário,
em um determinado momento uma das versões abertas vai fechar e disparar para que todas as outras fechem tem como fazer isso?

Eu consegui fechar usando o taskkill do windows, só que ele fecha o processo javaw que pode ser qualquer processo java, dessa forma não vai funcionar. Tem como eu fechar através da JVM ?

[quote=luciano@@]É isso eu tenho um programa java, este programa pode estar aberto várias vezes pelo usuário,
em um determinado momento uma das versões abertas vai fechar e disparar para que todas as outras fechem tem como fazer isso?

Eu consegui fechar usando o taskkill do windows, só que ele fecha o processo javaw que pode ser qualquer processo java, dessa forma não vai funcionar. Tem como eu fechar através da JVM ?[/quote]

mas porque um programa vai estar aberto varias vezes?

Sei la, talvez se o usuário quizer abrir várias instâncias, tudo depende de quem estiver usando.

mais facil fazer um controle pra poder apenas um não?

Mas fácil é , o problema é q nesse caso eu não tenho autoridade para mudar a especificação.

converse com quem tem, em projetos há mudanças sem problema, e o escopo em si não vai alterar, e mostre que se um usuario puder abrir varios programas na mesma maquina ele pode ficar perdido e ficar remodificando as coisas no programa, faz uma coisa numa janela dai a tabela não da um refresh e ele tenta adicionar dinovo, mostra isso tudo, pois pelo que eu entendo não tem motivo nenhum para abrir mais de um programa por maquina.

[quote=luciano@@]É isso eu tenho um programa java, este programa pode estar aberto várias vezes pelo usuário,
em um determinado momento uma das versões abertas vai fechar e disparar para que todas as outras fechem tem como fazer isso?

Eu consegui fechar usando o taskkill do windows, só que ele fecha o processo javaw que pode ser qualquer processo java, dessa forma não vai funcionar. Tem como eu fechar através da JVM ?[/quote]

Se você quiser dar um kill em um processo java, dê uma olhada nos fontes do plugin kill da jvisualvm

Se é um processo que fica dentro da JVM (como o Julio falou), dá pra pensar em usar um tasklist com jps. Você dá um jps, pega o id do processo, consulta no tasklist e ve qual processo é. Não sei no Linux, mas no Windows acho que funciona dessa forma. É uma forma meio ‘precária’ e custosa, mas acho que pode resolver seu problema.

Caro Andre,

Seu comentário foi de grande ajuda, o jps funciona muito bem acredito que no linux também funcione assim como o javac, muito obrigado pela ajuda.

Caro júlio, momentaneamente consegui terminar a implementação de uma forma que funciona, foi um pouco de pog mas está funcionando. Em breve irei examinar o código da jvisualvm e vou ver se melhora a minha solucão agradeço a todos os demais.