2014-09-22 19 views
5
import java.io.*; 
class Sysexecute 
{ 
    public static void main(String args[]) throws IOException,InterruptedException,IllegalThreadStateException 
    { 
     Runtime rt= Runtime.getRuntime(); 
     Process p=rt.exec("ls"); 
     System.out.println(p.exitValue()); 
    } 
} 

java'da sistem komutlarının nasıl çalıştırılacağını öğreniyordum ve bu hata oluşuyordu. Bunu reddetmek için atmalarını denedim ama hiç kullanamadım.İllegalThreadStateException'ı kullanma

actual error:- 
Exception in thread "main" java.lang.IllegalThreadStateException: process hasn't exited 
    at java.lang.UNIXProcess.exitValue(UNIXProcess.java:270) 
    at Sysexecute.main(Sysexecute.java:8) 

cevap

9

çağırır Process#waitFor() çıkış değeri elde denemeden önce sebebini ve çözümünü açıklayınız. Bu, ortaya çıkan işlem sona erene kadar geçerli parçayı engeller. Bunu yapmazsanız, Process#exitValue()

IllegalThreadStateException atar - henüz

sonlandırıldı değil bu Process nesnesi tarafından temsil edilen alt işlemi ise