我正在尝试使用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
答案 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