2013-04-02 70 views
3

這是很容易得到先前進程的PID在UNIX的從Java

echo $! 

但是,假設我通過Java執行unix命令查找unix命令PID現在,我如何通過Java獲得「myScript.sh」PID

EG- 在Unix中,我們會做 - 1.執行myScript.sh 2.執行ps -ef | grep -i "myScript.sh" | grep -v grep

輸出將喜歡 -

 UID PID PPID C STIME TTY   TIME CMD 
userprod 11764 28386 0 05:57:45 pts/3  0:01 myScript.sh 

我需要什麼樣的通過Java是PID ,在這種情況下是「11764」。

p.s.-腳本也將從Java執行,而不是從shell執行。

+0

相關:[Java程序如何獲得它自己的進程ID?](http://stackoverflow.com/q/35842/1288) –

+0

@dogbane謝謝,這就是我正在尋找爲,反思。 –

回答

0

不確定這是否有效;

that process(Process process=Runtime.getRuntime().exec("myScript.sh")) 

是一個java.lang.UNIXProcess,它有一個字段pid;使用反射來獲得值

+1

編輯以格式化您的代碼。 – fedorqui