Abrir instância do .jar apenas uma vez

2 respostas
J

Olá gujeiros de plantão, estou com uma dúvida cruel que não conseguir sanar até o momento:
Queria saber uma maneira de que quando eu executar o .jar se tiver uma instância dele aberta não criasse outra queria que executasse a mesma.

para ficar mais claro em delphi seria assim:

function CurrentProcessIsRunning: boolean;
var
  hMutex: THandle;
begin
  hMutex := CreateMutex(nil, true, PChar(ExtractFileName(ParamStr(0))));
  Result := not ((hMutex <> 0) and (GetLastError = 0));
end;

se alguém tiver uma idéia de como implementar isso em java agradeceria muito, qualquer dúvida posta ai para uma explicação melhor.

2 Respostas

J

Bom, até agora revirei a net e nada… será que não tem jeito?

Marcelo_FS

A maneira mais fácil de fazer isso é, na inicialização, abrir um ServerSocket para uma porta pré-determinada. Se lançar uma exceção, é pq o programa já está aberto e você pode encerrar a instância. Só escolhe uma porta que não seja utilizada por nenhum outro programa muito conhecido, ou você nunca vai conseguir abrir seu programa… :roll:

Criado 19 de fevereiro de 2009
Ultima resposta 20 de fev. de 2009
Respostas 2
Participantes 2