2016-06-06 20 views
0

Ich habe eine .jar, die ich perfekt über die Befehlszeile ausführen kann.Crontab läuft nicht Java

Ich brauche diese continuosly alle 5 Minuten ausgeführt werden, so dass ich crontab -e, wo ich diese Zeile

hinzugefügt
*/5 * * * * java -jar /var/www/java/executable.jar 

wenn ich

grep CRON /var/log/syslog 

gehe ich sehen, wo der Job war ausgeführt, aber es war nie, seit ich einen Logger in der Java-Datei habe und das erste, was es tut, ist an den Logger die Zeit anhängen, die es nicht tut.

Was kann der mögliche Fehler sein?

Antwort

2

Der häufigste Fehler ist, dass die Umgebungsvariablen nicht gebunden und

  1. Java ist nicht im Weg
  2. JAVA_HOME nicht gesetzt ist. die /var/log/javacron.log -file für weitere Informationen

*/5 * * * * java -jar /var/www/java/executable.jar > /var/log/javacron.log 2> /var/log/javacron-err.log 

Versuchen und inspizieren.

+0

Selbst wenn ich den Befehl ausführen, funktioniert es richtig? –

+1

Ja, auch wenn mit der Befehlszeile ausgeführt wird. Der Cron kann einen anderen Benutzer oder eine andere Shell verwenden. Wenn es einen anderen Benutzer ausführt, darf die Java-Exec möglicherweise nicht arbeiten. Wenn es eine andere Shell ausführt, haben Sie möglicherweise nicht die Umgebungsvariable Sichtbarkeit in der Cron-Ausführung. –

+0

Die Datei wurde leer generiert –