2012-02-02 18 views
6

Şu anda Java böyle bir şey yapıyorum yürüttükten sonra Java dönüş kodu alırım nasıl bir windows komut satırı komutu

Process p = Runtime.getRuntime().exec("ping -n 1 -w 100 127.0.0.1") 

nasıl pencereleri exec kod okumak can? Komut satırı çıktısını komuttan nasıl okuyacağımı çoktan biliyordum, ya da 0 ya da 1'in başarılı olup olmadığını ya da başarısız olduğunu söylersem ne yapmalıyım?

cevap

2
+0

İşlemin bittiğinden emin değilseniz, bunun yerine waitFor() yöntemini kullanmalısınız. –

6

Kullanım Process.exitValue() yöntemi kullanabilirsiniz. Süreç henüz çıkmadıysa ve tekrar denemediyseniz, atılan istisnayla başa çıkmanız gerekecektir. Ya da işlemin bitmesini beklemek için Process.waitFor() kullanabilirsiniz ve işlem çıkış değerini de döndürür (increment1 sayesinde).

+0

process.waitFor(), çıkış değerini döndürecektir, böylece sonraki process.exitValue() çağrısına gerek yoktur. –

+0

@ increment1, tabiki bunun için teşekkürler. – hmjd

0

waitFor()
ve
exitValue()
olsun. kod

4

sonraki satır:

int returnCode = p.waitFor(); 

Bu bloklar, işlem tamamlanana kadar. Engellemek istemiyorsanız, Process.exitValue() yöntemini de kullanabilirsiniz. Bkz. Java6 Process class API doc

İlgili konular