Executar java pelo crontab do Linux

1 resposta
N

Galera meu problema é o seguinte tenho a seguinte classe:

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.PrintWriter;
import pacote.*;

public class teste {

public static void main(String[] args){

try{

PrintWriter saida = new PrintWriter(new FileOutputStream("//home//xxx//java_file2.txt"));

saida.println(tai o aquivo criado);

saida.flush();

System.out.println(JVM Create);

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

Esta classe irá criar na pasta determinada o arquivo java_file2.txt.

Quando executo ela manualmente tudo ocorre como esperado. Manualmente eu executo o seguinte comando:
/apps/JAVA/jdk1.5.0_11/bin/java teste

Quando tendo colocar este comando para executar no crontab, o mesmo não executa. Segue o comando no crontab:
44 16 * * * /apps/JAVA/jdk1.5.0_11/bin/java teste

OBS: hora e minuto da hora que eu queria executar.

O crontab é executado corretamente quando tento apenas criar um arquivo na pasta determinada, sem código java. Segue o comando do crontab que funciona:
50 16 * * * /home/nvjr/saida.txt > /home/nvjr/crontab_arq_for_arq.txt

Com isso estou certo que o problema é ao tentar executar um classe java.

Alguem pode me ajudar?

1 Resposta

Guilherme_Gomes

O crontab executa o comando a partir da pasta root se não me engano… Então, sua classe teste provavelmente não está aí, mas numa pasta sua em algum lugar… Por isso o comando não funciona no cron… você teria que se posicionar na pasta onde está o teste.class primeiro e depois executar esse comando…

Tente criar um script pra isso e coloca o script no cron…

Criado 19 de setembro de 2008
Ultima resposta 19 de set. de 2008
Respostas 1
Participantes 2