最近部署一個JAVA程序到Linux中的crontab,遇到了亂碼。因為以前一直都用英文信息,所以一直沒遇到這個問題。原來還是環境變量的問題,因為在crontab系統里不會攜帶用戶的環境參數。因此,需要額外添加。不過有點奇怪的是其中一些變量,不需要顯式export出來就可以了,比如PATH,JAVA_HOME之類的,而LANG參數則需要顯式export才可以,否則,就是好多問號,亂碼....
crontab所引用的sync.cron
#!/bin/bash
CPATH=
WEBLIB="/usr/local/apache-tomcat-5.5.20/webapps/banner/WEB-INF/lib"
WEBCLASSPATH="/usr/local/apache-tomcat-5.5.20/webapps/banner/WEB-INF/classes"
for i in "$WEBLIB"/*.jar;do
CPATH="$CPATH":"$i"
done
CPATH="$WEBCLASSPATH":"$CPATH"
export LANG="zh_CN.GB18030"
/usr/local/jdk1.5.0/bin/java -cp $CPATH com.sandai.project.service.MailService
執行java程序的java命令,也要全路徑,否則也找不到該命令。