从CRON作业运行java代码
从CRON作业运行Java代码时遇到问题
我试图从CRON运行一个“.sh”文件,如下所示:
* * * * * root sh /run-test.sh >> /var/log/cron.log
# empty line
这是一个运行测试。上海有:
java HelloWorld
当我导航到根文件夹,即“/”并运行命令:
sh run-test.sh
它将正确运行HelloWorld类,并提供所需的输出
但是,通过CRON标签,它总是说:
Error: Could not find or load main class HelloWorld
我无法判断这是什么原因。立即回复会很有帮助。谢谢
# 1 楼答案
您可能需要更改cron的当前工作目录
您的脚本中没有任何绝对路径,因此它将相对于工作目录运行
# 2 楼答案
您应该在shell文件中为类使用完整的限定名。例如com。nri。gov.master。ctrl。你好世界 像这样
$JAVA com。nri。gov.master。ctrl。HelloWorld$Var 2>>/var/log/console。日志
# 3 楼答案
检查以下几点:
export JAVA_HOME=[path-to-java-directory]
java some.package.HelloWorld
export CLASSPATH=yourjar.jar
* * * * * export JAVA_HOME=[path-to-java-directory]; /bin/sh your-executable-file.sh >> your-application-log-file.log