crontab对于运行Java类不起作用 [英] crontab doesnt work for run java class

查看:252
本文介绍了crontab对于运行Java类不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

我在哪里可以设置crontab将使用的环境变量?

再次阅读此内容 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆