Boa tarde pessoal, estou com uma dúvida inusitada aqui, gostaria de recuperar informações sobre os processos que estão sendo executados na JVM para impedir que o usuario abra duas aplicações na mesma maquina, gostaria de verificar toda vez que o jar fosse e executado se uma instancia da apliucação já está sendo executada e caso esteja vou retornar uma mensagem.
1- Reservar uma porta para verificar que uma instância da applicação fonçiona jà no OS.
Tanho muitos applicativos em rede que utilisão portas et o meu FireWall não gosta de portas abertas…
2- Um arquivo (ficheiro) de “propreties” para indicar que a applição esta rodando,
jà me parece ser melhore mas o problema é o em caso de “crash” da applicação.
3- Utilisação de JMX MBeans … talvez muita coisa por nada.
4- ???
Abraços
ViniGodoy
Seu firewall não interferirá nesse caso, já que sua aplicação não fará comunicação por essa porta. Aliás, é até bom que você ligue o seu firewall para essa porta. Existem 65.535 portas disponíveis, basta escolher um número bem exótico.
Infelizmente, o Java não permite o jeito correto de fazer isso, que é através de chamadas ao SO. Se quiser realmente fazer do jeito certo, terá que escrever um driver JNI, que faz a comunicação com o SO. Entretanto, sua aplicação só será portável se você escrever esse driver para cada uma das plataformas que pretende atender.