Bash脚本无法作为cron作业运行Java程序

时间:2014-09-17 15:25:16

标签: java linux bash crontab ubuntu-14.04

我正在尝试使用crontab每隔1分钟从bash脚本运行一个.class文件。我收到错误无法找到或加载主类Cron_Read_Send_CapacityData_To_Graphite。我已经在我的机器上设置了环境变量。

如果我从终端运行bash脚本它工作正常。注意bash脚本和java类文件在同一个文件夹中

脚本:

$ cat Run_Cron_Read_Send_CapacityData_To_Graphite.sh
#!/bin/bash

java Cron_Read_Send_CapacityData_To_Graphite >> /home/marshell/graphite_cronjobs/Cron_Read_Send_CapacityData_To_Graphite.log

Cron条目:

$ crontab -e

*/1 * * * * /home/marshell/graphite_cronjobs/Run_Cron_Read_Send_CapacityData_To_Graphite.sh >> /home/marshell/graphite_cronjobs/debug_cronjob.log 2>&1

错误:

Error: Could not find or load main class Cron_Read_Send_CapacityData_To_Graphite

1 个答案:

答案 0 :(得分:1)

您的错误消息表明您的类路径设置不正确,脚本无法找到Cron_Read_Send_CapacityData_To_Graphite.class,我会使用类似的内容 -

CP=/home/marshell/graphite_cronjobs # The classpath to use
LF=$CP/Cron_Read_Send_CapacityData_To_Graphite.log # the log file
java -cp $CP Cron_Read_Send_CapacityData_To_Graphite >> $LF