5

在我的应用程序中,我正在使用运行批处理文件的代码,在执行它时我得到一个异常,即当前线程不是所有者。这里要提一下我的应用是基于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**************/
4

1 回答 1

11

等待是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();
}
于 2013-05-24T08:05:05.420 回答