有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java当前线程不是所有者异常

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

  1. # 1 楼答案

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

    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();
    }