当前线程不是所有者例外

时间:2013-05-24 07:48:45

标签: java multithreading runtime

在我的应用程序中我正在使用运行批处理文件的代码,在执行它时我得到一个例外,即当前线程不是所有者。 在这里我想提一下我的应用程序是基于eclipse插件开发的。 以下是我的代码,请看一下,找出有什么问题帮助我..

/*.......any code.........*/
try
{
    Runtime runtime = Runtime.getRuntime();
    String cmd = new String(C:\\abc.bat);
    process = runtime.exec("\"" + cmd + "\"");

    process.wait();

}
catch (Exception e)
{
    e.printStackTrace();
}

/***********any code**************/

1 个答案:

答案 0 :(得分:1)

wait是Object拥有的方法,要使用该方法,必须获取对象的锁,将代码更改为,

try
{
    Runtime runtime = Runtime.getRuntime();
    String cmd = new String(C:\\abc.bat);
    process = runtime.exec("\"" + cmd + "\"");
    synchronized (process){
       try{
          process.wait();
       } catch (InterruptedException e) {
          e.printStackTrace();
       }
    }
}
catch (Exception e)
{
   e.printStackTrace();
}