2013-10-18 168 views
2

如果我直接在終端運行波紋管代碼,它工作的很完美。Crontab + ubuntu + java不能正常工作

/usr/bin/java -jar /var/jboss-as-7.1.1.Final/standalone/email_linux/notification_18.jar 

但是當我在Ubuntu服務器中設置相同的crontab然後它不起作用。

*/3 * * * * /usr/bin/java -jar /var/jboss-as-7.1.1.Final/standalone/email_linux/notification_18.jar 

任何人都知道爲什麼意外的行爲?

+0

請定義:「不下去了」 – jzd

+0

@jzd在罐子不執行感。 –

回答

1

crontab任務在與您正在測試呼叫的用戶不同的用戶下執行。 JBoss依賴於很多環境變量,這些變量在這種情況下可能是未定義的。因此,從環境中找出特定的JAR需要什麼,然後將其添加到您從cron任務運行的shell腳本中(而不是直接從cron運行java)。

+0

我創建了以下內容SH文件 在/ usr /斌/ Java的罐子/var/jboss-as-7.1.1.Final/standalone/email_linux/notification_18.jar 現在添加以下代碼在crontab中 */3 * * * * sh /var/jboss-as-7.1.1.Final/standalone/email_linux/startup.sh 但是它有些不起作用。如何知道設置路徑的環境變量列表 – vishal

+0

從您的shell中定義的變量開始,在這些變量中一切正常,並查找任何JBoss特定和/或Java特定的變量。 –

0

如果您正在讀取或寫入文件,請確保在源代碼中包含絕對路徑,即使jar文件和讀取文件位於同一目錄中。

0

它指定絕對路徑後解決