Colocando o .jar para rodar como serviço no windows

Para colocar um .jar para executar como serviço quando você inicializa o PC:

  • Baixe o pacote javaservice e descompacte-o
  • Entre no prompt do DOS e vá até a raiz do java service
  • D:\NetBeans\JavaService-2.0.10>
  • Digite um comando do tipo:

javaservice -install dotprojectPlugin C:\Program Files\Java\jdk1.6.0_10\jre\bin\server\jvm.dll-Djava.class.path=D:\NetBeans\DotProjectPlugin\dist\DotProjectPlugin.jar -start Main

Onde:

  1. javaservice é o comando;
  2. install é a flag de instalação
  3. dotprojectPlugin é o nome do serviço
  4. o Caminho é p/ vc apontar para o seu jdk (C:\Program Files\Java\jdk1.6.0_10\jre\bin\server\jvm.dll)
  5. Djava.class.path é o caminho até meu .JAR
  6. start p/ iniciar o serviço, nesse caso a partir do pacote onde está o main

Mensagem de sucesso: The dotprojectPlugin automatic service was successfully installed

Para chegar se tudo correu como esperado:

  • Entre no Iniciar/Executar e digite msconfig
  • Entre na aba Serviços e veja se foi criado o serviço dotprojectPlugin(No meu caso).

Importante dizer que se for uma aplicação swing não vai funcionar, por que:

Segue abaixo trechos do forum guj….

Preciso que uma aplicação desenvolvida em swing inicie quando o computador for ligado, como faço isso?
Tentei o javaservice, mas aplicações swing não rodam assim.
Qual a saída pra isso? Alguém pode me ajudar?
laudenpower
Crie um script de inicialização do aplicativo (se for em win é um arquivo do tipo .bat, se for em linux ubuntu é do tipo .sh). Coloque esse script no menu iniciar -> programas -> inicializar (no caso do windows xp), em ambiente linux mais precisamente no ubuntu coloque o script criado no aplicativos de sessão que pode ser encontrado em sistema -> preferencias -> aplicativos de sessão.
fantomas
Dá uma olhada nisto aqui ó: http://edn.embarcadero.com/article/32068
Jardel
Não se deve usar aplicações gráficas (ex. Swing ou SWT) como serviços.
O Windows simplesmente não consegue lidar com tais programas como serviços, desde sua versão inicial. (A “interação” que o Windows deixa fazar é restrita a alguns tipos especiais de MessageBoxes da API do Windows – um JOptionPane não é uma MessageBox da API do Windows.)
Mas, me disseram que não suporta… Acha que funcionaria com o wrapper? Porque utilizando o javaservice consegui colocar a aplicação entre os serviços, mas não executa.
O serviço que criei aparece nos serviços(Aplicação java swing), mas quando peço para iniciar ele diz:
“O serviço “nomeServiço” em Computador Local foi iniciado e interrompido. Alguns serviços são interrompidos automaticamente se não estiverem sendo usados por outros serviços ou programas.”
entanglement
Não é para funcionar com o wrapper se a aplicação for gráfica. Você quer os detalhes sangrentos? É o seguinte:
O Windows, desde o primeiro Windows NT (o XP, o Vista e o 7 são evoluções do Windows NT), tem o conceito de “aplicações” e “serviços”. Aplicações podem ser gráficas (afinal de contas, é por isso que o sistema se chama Windows), e podem interagir com o usuário, via “desktops”. Cada usuário logado tem o seu desktop, se ele estiver “logado interativamente”. Se o Windows estiver rodando o serviço de acesso remoto, vários usuários podem usar ao mesmo tempo o computador, cada um com seu desktop.
Acontece que “serviços” não podem acessar o desktop do usuário, exceto de maneira muito limitada, através de uma API muito específica que é a MessageBox (que nada tem a ver com uma JOptionPane). Essa MessageBox de sistema só está visível em um dos desktops, que é normalmente reservado ao administrador logado localmente na máquina, e só pode ser usado para mostrar pequenas mensagens e receber entradas do tipo “OK” ou “Cancelar”. Fora isso, o acesso está simplesmente proibido.
O que você quer fazer é mais simples, mas requer que o usuário se logue na máquina (que é o que você quer fazer, afinal de contas!). Basta criar um script como foi explicado pelo laudenpower.
Jardel
Blz! É isso aí mesmo.
Se for apenas para executar a aplicação e se o .jar já estiver sido gerado, basta criar um atalho para o jar e colocá-lo no iniciar do windows. (Todos os programas/Inicializar)…
O meu caso era bem mais simples que imaginava, mas aprendi com a pesquisa e a ajuda de vocês.
Se houver a necessidade de transformar o .jar em .exe o que aconselho é o “exe4j”, testei e realmente é fácil de usar, porém é pago!
Existe uma versão trial que você pode usar, vai apenas aparecer quando for executar o .exe é uma mensagem dizendo que foi feito com
uma versão trial do “exe4j”. (Para baixar o exe4j clique aqui)
Depois de baixado e instalado o software:
1 – Em Project Type, escolha “Jar in Exe mode”
2 – Insira um nome para aplicação e o diretório onde será gravado o .exe

3 – Se for uma aplicação swing, deixe marcado a opção GUI application

- Dê um nome para a aplicação e aponte para uma imagem para o ícone(.ico)

4 – Não esqueça de add(+) todas as libs do seu projeto e o .jar do próprio projeto seu, para que apareça a classe Main e

as dependências como hibernate3.jar, etc precisam estar no Class Path abaixo.

5 – Insira um range para as versões do aplicativo

6 – “No splash screen” para uma aplicação simples, sem aparecer imagem quando carrega.

Jardel B. Morais

No comments yet.