[RESOLVIDO]Finalizar processo

13 respostas
L

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?

13 Respostas

G

system.exit(0);

L

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???/

G

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

J

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???/

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.

L

É 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 ?

G

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 ?

mas porque um programa vai estar aberto varias vezes?

L

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

G

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

L

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

G

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.

J

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 ?

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

A

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.

L

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.

Criado 24 de agosto de 2010
Ultima resposta 26 de ago. de 2010
Respostas 13
Participantes 4