2013-06-03 59 views
3

我有一個可執行的jar文件,並且我寫了一個shell腳本來執行它。當我手動運行shell腳本,它運行正常,但當時間表它每週使用crontab中運行,它提供了以下錯誤 -shell腳本在被cronjob執行時失敗,否則工作正常

log_process.sh: line 16: java: command not found 

線16在我的shell腳本 -

java -jar $jar_path $logDirectory $logNamePattern $processedLogDirectory $oldResultsDirectory 2>>$log_file 1>&2 

任何想法爲什麼它會在我手動運行時運行正常,但在vrontab作業運行時運行不正常?

+0

哪些命令是在手動運行時觸發的,哪個命令使用cron作業? –

+1

1.是同一個用戶嗎? 2.如果是,環境是否一樣?提示:在cron和命令行中嘗試'env' – fge

+1

您的java安裝在哪裏?嘗試使用Java安裝的完整路徑。例如/ usr/local/bin/java -jar $ har_path ... – divaka

回答

4

你的cron作業沒有訪問相同的$ PATH變量,你作爲一個用戶擁有。

解決這個問題的最簡單方法是打開一個終端,並運行此命令:

which java 

那將會給你你的Java可執行文件的絕對路徑。例如:

/opt/Oracle/Java/bin/java 

將您的'java'命令替換爲整個路徑。

您可能還需要指定你的shell腳本JAVA_HOME變量。 從終端來看:

echo $JAVA_HOME 

這會給你另一條路徑,如「/選擇/甲骨文/ Java的。在你的腳本(假設你正在使用bash),你運行java命令之前,就把:

export JAVA_HOME=/opt/Oracle/Java 

更換「/選擇/甲骨文/ Java的」與輸出,以前的回聲給你。

+0

hi..i已經嘗試了兩個選項,但仍然是同樣的錯誤....任何其他想法? –

+0

您在cron工作上遇到的確切錯誤是什麼? – chamakits

+0

對不起..我的壞...它的執行通過做你告訴我...其他一些問題,我不知道..感謝幫助.. –

相關問題