我試圖做一個小的java作業,將文件從一個文件夾複製到另一個文件夾以及一些數據庫存儲等。作業從每小時執行一次的腳本運行。我想在java作業中檢查一下,如果作業已經運行,它可以返回一些值。如果作業正在運行,返回值
問題是,我不知道如何做到這一點。有什麼建議麼?
每小時作業運行如下:「java myjob arg1 arg2」。是否有可能檢查一小時前開始的工作是否仍在運行?
編輯
只是想的東西。由於每次這項工作時,它會得到一個新的進程id下面不會工作的建議。我的工作會從另一個這樣的腳本運行:
if ${type} = ${sys}
then
java batchjob ${type} ${dir1} ${dir2}
這個,我非常喜歡! - 我的問題是我在Windows機器上開發,但它將部署在unix機器上。你知道是否有辦法檢查可以在win和unix上運行的processID嗎? – Herter
我不知道在Unix和Windows上都能工作的方式。當我不得不做這樣的腳本時,我在Linux機器上開發了它。爲了模擬widows上的unix shell環境,我會嘗試使用cygwin或虛擬Linux系統(有許多免費下載的vmware映像)。似乎也有一些(可能是不可靠的)方法來獲得Java中的PID:http://stackoverflow.com/questions/35842/process-id-in-java。祝你好運。 –