2014-10-10 77 views
1

我已經創建了一個簡單的java程序來打印「Hello world」。代碼如下通過crontab安排在unix工作

public class Hello { 

    public static void main(String[] args) { 

     System.out.println("Hello world!"); 
    } 

} 

類已經編譯好了,它在同一個目錄下。 在同一個目錄下我創建了一個名爲temp.sh外殼文件,其中包含命令

java Hello 

現在如果我執行這個shell文件然後被成功執行Java程序。 我寫一個cronjob來執行它的每一分鐘

* * * * * /home/ashutosh/Documents/javaPractice/temp.sh >> /var/log/myjob.log 2>&1 
現在在我的日誌

它顯示

could not load main class java 

我不知道是什麼問題。我曾嘗試通過給java文件的絕對路徑,但沒有任何幫助。幫我。

感謝

+0

的方式更改java的類路徑可能出現[Bash腳本無法作爲cron作業運行Java程序]的重複(http://stackoverflow.com/questions/25894558/bash-腳本無法對運行Java的程序作爲-的cron作業) – Praveen 2014-10-10 06:36:37

回答

1

你的問題是,的cronjob的工作目錄是不是在您的類所在的目錄。因此,在腳本中添加一個cd the_right_directory或者用類似java -cp some_directory Hello

0

使用java -cp ./ Hello來運行程序。 -cp ./將當前目錄添加到類路徑中。

1

內temp.sh嘗試使用完整路徑:

java /home/ashutosh/Documents/javaPractice/Hello