Java 文件未在 cron 中编译

Java 文件未在 cron 中编译

我每天通过 CRON 运行一个脚本文件,其中涉及运行 selenium 测试用例并以邮件形式发送报告。这是我的脚本:check.sh

#!/bin/sh
set -x
./.bashrc
export CLASSPATH=/home/test/TestAutomation/lib/*:.
cd /home/test/TestAutomation/lib/
/usr/bin/java -jar selenium-server.jar & 
cd
javac Api.java
java Api 
cd /home/test/TestAutomation/selenium/reports/
cp result.html /home/test/TestReports
sh /home/test/repgen.sh
sleep 30
sh /home/test/masRepgen.sh

该脚本在 cron 中运行良好。在此,sh /home/test/masRepgen.sh该脚本编译并执行 java 文件并发送邮件。我对上面的脚本做了一个小的更改,如下所示。

#!/bin/sh
set -x
./.bashrc
. /home/test/blog/build.txt
cd /home/test/VT/CT/
if  [ -e /home/test/VT/CT/CT__$BuildLabel ]; then
echo "Testcases has been run already"
else
export CLASSPATH=/home/test/TestAutomation/lib/*:.
cd /home/test/TestAutomation/lib/
/usr/bin/java -jar selenium-server.jar & 
cd
javac Api.java
java Api 
cd /home/test/TestAutomation/selenium/reports/
cp result.html /home/test/TestReports
sh /home/test/repgen.sh
sleep 30
fi
sh /home/test/masRepgen.sh

进行此更改后,我不会收到邮件。即,sh /home/test/masRepgen.sh不编译java类。我无法确定错误出在哪里。

masRepgen.sh 包含此内容。

cd /home/test/
/home/test/jdk1.7.0_12/bin/javac SendMail.java
/home/test/jdk1.7.0_12/bin/java SendMail "http://172.20.8.50/Regression/CR__$BuildLabel/compareresults_index.html" "http://172.20.8.50/Summary__$BuildLabel/complete_summary.html"

我在 crontab 中添加了这个:

45 02 * * * /bin/sh check.sh >> UI.txt

答案1

通过放置export CLASSPATH=/home/test/TestAutomation/lib/*:.在上面 if 条件可以解决问题。多谢大家的评价。

相关内容