Gostaria de saber, como posso desenvolver um aplicativo para rodar como serviço, inicialmente esse serviço irá rodar no WINDOWS, mas existe a posibilidade de ser executado em um ambiente LINUX ?
É este mesmo que vc. precisa. Só uns detalhes importantes:
-
Lembre-se de setar o “java.awt.headless” nas propriedades. Vc. não quer seu serviço tentando acessar a parte gráfica, principalmente em Linux/Unix.
-
Em Windows, se seu serviço disparar outras JVMs “filhas”, lembre-se de utilizar a opção “-Xrs” na linha de comando, caso contrário elas vão morrer quando um usuário fizer logoff (não pergunte…).
-
Tb. em windows, se seu serviço Java tentar disparar um aplicativo Windows que faça uso de interface gráfica, ele será iniciado sem erro, mas não funcionará se não houver alguem “logado” no console.
Muito obrigado !!! Vou ver o link e tomar cuidados com os pontos mencionados !
Estou precisando de ajuda com o JavaService. Vocês já usaram ele?
Obrigada
Cláudia
Qual tipo de ajuda exatamente você esta precisando ?
Olá.
Eu já usei o JavaService, com sucesso, para colocar o JBoss como serviço do Windows.
Agora tenho uma classe java normal (teste.class), e precisava que ela tb fosse um serviço, mas não estou conseguindo…
Usei o seguinte código:
JavaService -install TESTE C:\Sun\AppServer\jdk\jre\bin\server\jvm.dll -Djava.class.path=C:\teste.jar;C:\Sun\AppServer\jdk\lib\tools.jar -Xms128M -Xmx512M -start teste -out C:\stdout.log -err C:\stderr.log
onde teste é o nome da classe e TESTE é o nome que eu quero atribuir ao serviço.
Obrigada
Cláudia
ola Pessoal,
to querendo fazer um simples programa virar serviço do windows.
Só q sou completamente leigo…vi q o java java service é o mais fácil.
Alguém poderia dar uma mão ???
Muito obrigado
Ricardo
ola pessoal…
Consegui fazer a aplicação rodar com serviço…agora queria fazer uma pergunta a vcs…pode ser uma aplicação com interface gráfica ???..sem intervenção com o usuário…só um log de eventos…
Muito Obrigado p/ akeles q respoderem
Ricardo
Olá,
Alguém tem alguma aplicação (serviço) como exêmplo para me enviar?
Agradeço.
olá Amarildo,
uma aplicação vc msm pode fazer…lembrando q aplicações gráficas naum vai ser possivel visualiza-la.
eu fiz como exemplo 2 threads mostrando numeros na tela.
Agora p/ rodar essa aplicação como serviço do windows tb naum foi dificil…vou t explicar passo-a-passo
entra no prompt do windows e vai no diretório q vc extraiu o Java Service
dai de lá vc coloca o comando: “javaservice -install Teste C:\jdk1.6.0_01\jre\bin\server\jvm.dll
-Djava.class.path=C:\Servico\dist\JavaApplication3.jar -start com.ricardo.Main”
Comandos:
javaservice é o comando;
install é a flag de instalação
Teste é o nome do serviço
o Caminho é p/ vc apontar p/ o javaservice onde está esta DLL necessária p/ rodar o serviço
Djava.class.path é o caminho até meu .JAR
start p/ iniciar o serviço, nesse caso a partir do pacote onde está o main
Espero q dê certo sua aplicação…qq coisa posta ae.
Ricardo
Olá Ricardo,
Entendí… Vou fazer o teste.
Muito obrigado!!
Galera, preciso de ajuda!!
Não estou conseguindo fazer o JAVA SERVICE funcionar corretamente!
Ele cria o serviço no win, mais não executa nada…quando vc coloca “iniciar” na mao (pelo services.msc) ele fala algo assim: “o aplicativo terminou pois nao tinha nada pra fazer”, e nao carrega o meu JAR!!!
Já tentei colocar o classpath na string de instalação, e tbm nao adiantou:
JavaService -install ImportaPedidos C:\Program Files\Java\jdk1.6.0_04\jre\bin\server\jvm.dll -Djava.class.path=C:\system\ImportaPedidos.jar;C:\system\msbase.jar;C:\system\mssqlserver.jar;C:\system\msutil.jar -start br.com.projeto.BatchExecution
Alguem me ajude pls??
help!!!
Pessoal, preciso desenvolver uma aplicação que rode como serviço no Linux.
Ainda não comecei a desenvolver nada, mas a ideia é montar uma classe que acess o banco (MySQL) verifique algumas informações e dispare um e-mail quando necessário.
Na aplicação em si acho que não terei problema, apesar de não possuir tanto conhecimento assim em Java, mas a minha principal dúvida é após o sistema estiver funcionando corretamente, como eu instalo ele no Linux?
Não sei como funciona os serviços no Linux.
Dei uma olhada no material que o pessoal postou aqui, mas não consegui avançar muito.
Alguém tem uma dica ou mais material?
No aguardo e obrigado.
Eu consegui criar o meu serviço com este script.
javaservice -install Servidor C:\jdk1.5.0_16\jre\bin\server\jvm.dll -Djava.class.path=C:\java\MediaDna_Services\Servidor\Servidor.jar -start Conexao.prototipo.Servidor
e o mesmo está ativo! a classe se refere a um servidor para comunicação via socket… atraves da minha classe cliente eu me comunico o serviço ativo, porém as demais funcionalidades da classe não opera normalmente, alguem sabe me dizer o que ocorre?, pois essa classe opera normalmente antes de criar o serviço do windows.
classe Servidor
package Conexao.prototipo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Servidor {
public static void main(String[] args) throws IOException, InterruptedException {
Runtime run = Runtime.getRuntime();
//Declaro o ServerSocket
ServerSocket serv=null;
//Declaro o Socket de comunicação
Socket socket= null;
BufferedReader entrada = null;
PrintStream saida = null;
//Cria o ServerSocket na porta 7000 se estiver disponível
serv = new ServerSocket(7000);
while (true) {
try{
//Aguarda uma conexão na porta especificada e cria retorna o socket que irá comunicar com o cliente
socket = serv.accept();
//Cria um BufferedReader para o canal da stream de entrada e saida de dados do socket s
entrada = new BufferedReader(new InputStreamReader(socket.getInputStream()));
saida = new PrintStream(socket.getOutputStream());
String linha = entrada.readLine();
while (linha != null) {
// Recebe a String para Parar os Serviços
saida.println("escrita");
if(entrada.readLine().equals("pararaudiorecord")) {
run.exec("sc start cisvc"); //para o Serviço FileTranfer
System.out.println(entrada.readLine());
}
}
}
//trata possíveis excessões de input/output. Note que as excessões são as mesmas utilizadas para as classes de java.io
catch(Exception e){
System.out.println("Algum problema ocorreu ao criar ou enviar dados pelo socket.");
System.exit(1);
}
//Encerro o socket de comunicação
socket.close();
entrada.close();
}
}}
Serviços normalmente não podem escrever e ler da console; você terá de redirecionar a entrada e saída padrões para arquivos, por exemplo. “System.out.println (” deve estar escrevendo no vazio ou então detonando completamente o serviço.