[RESOLVIDO] Aplicativo Java fecha ao efetuar Logoff do Windows

Pessoal ,

Bom dia a todos !!!

Estou com uma duvida que esta me deixando encucado.

Estou desenvolvendo uma aplicação em Java e essa aplicação é ativada por uma BAT no Agendador de tarefas do Windows XP ao iniciar o sistema.
Funciona até certo ponto.
Ao iniciar o computador o agendador de tarefas executa minha aplicação e continua executando quando algum usuário efetua logon no sistema , mas quando o usuário efetua logoff o Windows derruba minha aplicação , sendo que ela deveria continuar sendo executa mesmo apos logoff de algum usuário.
Isso acontece em 2 maquinas com Windows XP no meu trabalho.

Testei em casa com o Windows 7 e funcionou sem problemas mesmo apos logoff.

Obs: Nessas maquinas do meu trabalho ja existe uma aplicação feita por mim em linguagem de script TCL e a mesma esta funcionando sem problemas.

Alguém já passou por isso ?

Quem puder me ajudar ficaria muito Grato.

Pessoal ,

Boa tarde !

Depois de quase derreter meus neuronios consegui achar a solução.

Apenas adicionar o parametro -Xrs na linha de comando do java.exe

.

Ohh bom saber disso!!

Que bom que conseguiu!

O que significa esse parametro? Muito interessante esta informação

ah é configuração de execução do windows… Ele deve dar uma prioridade menor/menor na hora de encerrar processos…

Rafael, voce tentou executar a tarefa como serviço?

leenno ,

Como faço para colocar como serviço ?

Então rafael, há varias formas… é um processo um pouco complicado, mas pode resolver seu problema…

Recomendo dar uma procurada no google (e.g: crirar um serviço no windows)…

Não vou indicar nenhum tutorial, porque nao sei seu nivel de conhecimento em alguma ferramenta especifica…
Qualquer coisa se precisar de mais ajuda é so falar cara!

-Xrs
Reduces usage of operating-system signals by the Java virtual machine (JVM). This option is available beginning with J2SE 1.3.1.
In J2SE 1.3.0, the Shutdown Hooks facility was added to allow orderly shutdown of a Java application. The intent was to allow user cleanup code (such as closing database connections) to run at shutdown, even if the JVM terminates abruptly.

The JVM watches for console control events to implement shutdown hooks for abnormal JVM termination. Specifically, the JVM registers a console control handler which begins shutdown-hook processing and returns TRUE for CTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and CTRL_SHUTDOWN_EVENT.

The JVM uses a similar mechanism to implement the pre-1.2 feature of dumping thread stacks for debugging purposes. Sun’s JVM uses CTRL_BREAK_EVENT to perform thread dumps.

If the JVM is run as a service (for example, the servlet engine for a web server), it can receive CTRL_LOGOFF_EVENT but should not initiate shutdown since the operating system will not actually terminate the process. To avoid possible interference such as this, the -Xrs command-line option has been added beginning with J2SE 1.3.1. When the -Xrs option is used on Sun’s JVM, the JVM does not install a console control handler, implying that it does not watch for or process CTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, or CTRL_SHUTDOWN_EVENT.

There are two consequences of specifying -Xrs:

Ctrl-Break thread dumps are not available.
User code is responsible for causing shutdown hooks to run, for example by calling System.exit() when the JVM is to be terminated.

[quote=leenno]Então rafael, há varias formas… é um processo um pouco complicado, mas pode resolver seu problema…

Recomendo dar uma procurada no google (e.g: crirar um serviço no windows)…

Não vou indicar nenhum tutorial, porque nao sei seu nivel de conhecimento em alguma ferramenta especifica…
Qualquer coisa se precisar de mais ajuda é so falar cara![/quote]

OK leenno ,

Vou dar uma pesquisada.

:thumbup:

Fico feliz se consegui ajudar

Boa sorte!