[resolvido]Tem como inserir uma aplicação desenv em Swing para rodar como serviço?

6 respostas
Jardel.morais

Bom dia!

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?

Obrigado desde já.

6 Respostas

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.

Espero ter ajudado.

fantomas

Dá uma olhada nisto aqui ó: http://edn.embarcadero.com/article/32068

flws

Jardel.morais

entanglement
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.”

E

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.morais

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.

Mais detalhes, postei em http://www.jardelmorais.com/?page_id=753

Obrigado.

laudenpower

Qualquer coisa estamos ai :wink:

Criado 7 de julho de 2010
Ultima resposta 7 de jul. de 2010
Respostas 6
Participantes 4