Prevenir executar um programa várias vezes ao mesmo tempo

4 respostas
F

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.

Como faço pra prevenir isso?

Abraço,
Felipe

4 Respostas

S

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

Eu pensei em fazer algo do tipo também, mas não conhecia esta API…

Valeu.

ViniGodoy

http://www.guj.com.br/posts/list/200290.java

lina

Oi,

Nesse blog tem um exemplo simples:

http://matheusferreira.wordpress.com/2010/08/02/bloqueando-aplicacao/

Criado 29 de setembro de 2010
Ultima resposta 30 de set. de 2010
Respostas 4
Participantes 4