crontab对于运行Java类不起作用 [英] crontab doesnt work for run java class
问题描述
testjob.sh
#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.6.0_07
echo "Java Home is $JAVA_HOME"
export CLASSPATH=.:..:$CLASSPATH:
echo "Path is is $PATH"
echo "CLASSPATH is is $CLASSPATH"
$JAVA_HOME/bin/java TestJob
echo "$JAVA_HOME/bin/java TestJob"
crontab -e
* * * * * /usr/testjob.sh >> /usr/result.txt 2>&1
如果我手动运行shell脚本,则运行正常,但当它将通过crontab作业运行时,将出现错误,因为未找到类。
if i run shell script manually it runs fine but when it will run through crontab job, error will occur as class not found..
请建议。.
推荐答案
看看这个。应该回答您的问题
Have a look at this. Should answer your question
再次阅读此内容 http://linuxshellaccount.blogspot.com/2007/10/crontab-and-your-environment.html \
最简单的方法可以确保在cron中具有与常规用户运行任何脚本时相同的环境,以获取通过在脚本中添加以下行来添加环境:
The easiest way you can make sure that you have same environment in cron as you have when running any script as the regular user is to "source" the environment into the script by adding a line like:
。 / etc / profile
。 /home/user/.profile
. /etc/profile . /home/user/.profile
到脚本顶部(在#!行下方)。文字点,空格和文件名模式告诉您的外壳读取该命名文件中的所有变量,因此您可以在与手动测试相同的环境下运行cron作业,这可以避免上述第1点和第2点引起的问题
to the top of your script (below the #! line). The literal dot, space, filename patterns tells your shell to read in all variables in that named file, so you could run your cron job with the same environment as when you test it manually, which might avoid issues caused by points 1 and 2 above.
这篇关于crontab对于运行Java类不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!