[quote=ViniGodoy]Ok, mas fazer:
Exemplo exemplo = Exemplo.getInstance();
exemplo = null;
Não mata o singleton. Mata uma referência ao Singleton, mas o objeto Singleton ainda existe, conforme demonstra o resto do seu exemplo.
Ainda existe uma variável estática (que está dentro da classe Exemplo), guardando a referência do Singleton. E o que o autor do tópico perguntou e se há um jeito de eliminar a existência de um objeto, em definitivo. No caso do Singleton, estou tentando demonstrar que não há. Ou melhor até há, mais é muito mais difícil do que com um objeto comum.
Era essa variável que o método killMySelf() tentava apagar exatamente a referência estática, interna e na classe, que mantém o Singleton vivo. E por isso causava a duplicação do Singleton.[/quote]
Puts agora vi a caca, realmente me enganei, exemplo = null, estou passando null apenas para a variavel exemplo.
Realmente nao mata o bixo, porem o que teremos é um Singleton Eterno, mas unico, sem o killMySelf.
[quote=eclipso]Este seu aplicativo seria o que exatamente? Uma thread? Um aplicativo desktop stand-alone? Um aplicativo desktop cliente-servidor?
Você fala dessa classe como se ela fosse algo dissociado do seu aplicativo. Porque diz “quando fechar” e “quando iniciar o aplicativo”, e em seguida diz que independente de fechar ou reiniciar o aplicativo a classe deve ficar “rodando”…
Daria pra resolver relativamente fácil adotando a arquitetura cliente-servidor, mas não sei exatamente qual é a natureza da aplicação…
Abraço…[/quote]
O meu aplicativo tem uma interface web, que roda em cima do Tomcat 6, esta classe ela é dissociada, eu queria rodar ela com o comando “java pacote.Classe”, só que não consegui fazer. Eu tinha um “.sh” que inicializava este aplicativo, só que não gostei muito da solução e resolvi fazer esta interface.
Eu tentei executar o .sh pela minha action, o arquivo .sh é executado só que o aplicativo não é inicializado, porque no .sh eu tenho um retorno que me diz que foi executado.
E ai agora estou tentanto fazer desta maneira tudo dentro do tomcat 6 aonde eu teria que ter o controle desta instancia, que ficaria como um processo na máquina.
Estou matando a instância da classe mas ela não para. Esta classe gera outras threads, a classe principal morrendo as threads filhas dela morrem também?