Prevenir executar um programa várias vezes ao mesmo tempo
4 respostas
F
felipekraemer
Olá. Estou desenvolvendo uma aplicação Swing. Eu compilo e construo o projeto gerando o .jar.
O problema que enfrento é: eu executo o .jar abrindo o programa. Só que eu consigo executar o .jar N vezes, fazendo com que N instâncias do programa sejam executadas ao mesmo tempo.
Olá Felipe, eu já fiz isso uma vez e a abordagem que eu utilizei para isso foi no momento da inicialização executar o seguinte algoritmo.
Ao iniciar verificar se um determinado arquivo existe no diretório do usuário existe. Se ele não existir você pode criá-lo (vazio mesmo). Uma vez que ele esteja criado você pode usar a API NIO para bloquear o acesso ao arquivo.
Dessa maneira quando uma outra instância do seu programa tentar obter o lock do arquivo ela não irá conseguir e daí você pode mandar uma mensagem ao usuário avisando que já tem uma instância em uso.
Espero ter ajudado
F
felipekraemer
Eu pensei em fazer algo do tipo também, mas não conhecia esta API…