Я просто экспериментирую с классами Java времени выполнения и процесса. Я пытаюсь открыть приложение, подобное слову Windows, используя Runtime.exec()
, а затем некоторое время жду и пытаюсь уничтожить его, используя метод Process.destroy()
.
MS Word открывается, но не закрывается, выдавая исключение в консоли
exception::java.lang.IllegalMonitorStateException: current thread not owner
Ниже мой код
import java.util.*;
public class StringTesting {
public void open()
{
try{
Runtime runtime = Runtime.getRuntime();
Process proc =runtime.exec("C:\\Program Files\\Microsoft Office\\Office12\\winword.exe");
StringTesting st = new StringTesting();
st.wait(5000);
// now destroy the process
proc.destroy();
System.out.println(" after destroy");
}
catch(Exception e)
{
System.out.println(" exception::"+e);
}
}
public static void main(String a[])
{
StringTesting st = new StringTesting();
st.open();
}
}