Usar o JavaService para adicionar o serviço do Windows
criei uma aplicação Java (executa o ciclo infinito) (com muitos ficheiros de classe Java) que também usa log4j.jar
e `snmp4j.jar? . Para executar o aplicativo, eu preciso fornecer alguns argumentos de entrada como segue:
C:\APP>java myApp.class arg1 arg2 arg3 arg4 arg5 arg6
onde myApp.class
contém o manipulador principal.
Esta aplicação funciona bem sob a execução da linha de comandos. No entanto, eu quero criar um serviço Windows para esta aplicação de modo que ele será executado sempre que o PC é iniciado. Além disso, se o serviço estiver em baixo para qualquer que seja a razão, ele será reiniciado sob a ferramenta serviços Windows.
tentei usar JavaService para o meu propósito, executando o seguinte comando:
C:\APP>JavaService.exe -install MyService "C:\java\jdk1.6.0.29\jre\bin\server\jvm.dll" -start myApp.class -params arg1 arg2 arg3 arg4 arg5 arg6
The MyService automatic service was successfully installed
vejo que o meu MyService
apareceu sob Ferramentas Administrativas - > Serviços
MyService
, começou e depois parou :(
Service dialog:
The MyService on Local Computer started and then stopped. Some services stop automatically if they have no work to do, for example, the Performance Logs and Alerts service.
Alguém sabe porquê?
2 answers
Fazes isto com uma configuração como esta:
-Djava.class.path={JDK_HOME}\lib\tools.jar;<your jar 1>;<your jar 2>
Como exemplo, usamos um script para instalar o JBoss, semelhante ao discutido/mostrado aqui: https://community.jboss.org/wiki/JavaService
HTH
Primeiro, Se utilizar um JVM de 64 bits, deve utilizar um JavaService de 64 bits. Caso contrário, obterá o seguinte erro nos registos de Eventos do Windows:
A função Loadlibrária falhou pela seguinte razão: o LoadLibrary não é uma aplicação Win32 válida.
Second, use -out
and -err
parameters of JavaService to log stdout and stderr from your java code.