Galera, estou com um problema … tenho uma aplicação .jar rodando, porém queria limitar a execução da aplicação, se estiver aberto e o usuário for executar, mostrar uma mensagem de alerta de que já está aberto. Alguém pode me ajudar ?
cria um arquivo temporário,
aí vc faz a condição na classe main:
if(!arquivo.exists()){
//abre o software
//cria o arquivo...
} else {
//mostra msg de erro falando q o app ja ta aberto
}
Sou novo em Java, se puder me ajudar com documentação de arquivos temporários. Agradeço … valeu !
Estou procurando aqui já rsrs
Uma opção simples é criar um ServerSocket
ao abrir a aplicação, quando o usuário tentar abrir uma nova instância na mesma porta que já está em uso, você pode interromper a execução!
private ServerSocket serverSocket;
try {
serverSocket = new ServerSocket(9581);
} catch(IOException ex) {
//Já existe uma instância da aplicação em execução
System.exit(0);
}
Um número de porta aleatória.
Vou testar aqui numa rede compartilhada, e ver se tem algum problema … deixei o número desta porta mesmo. OBS: a aplicação vou deixar rodando local na máquina mesmo, acredito que não tenha problema numa rede compartilhada. Muito obrigado a todos pela ajuda !!
Tem um exemplo pronto que eu postei neste tópico, inclusive ele foca a na janela do programa que já está executando.