等待流程执行结束

时间:2015-06-10 15:08:18

标签: java xml

在我的代码中,我正在尝试使用simex作为工具将文件MDL转换为文件XML。 然后我将使用此xml文件进行一些分析。 当我手动转换此文件或我处理一个小模型(通过进程....) ,没有发生任何错误。

问题是当我尝试使用此代码通过Process转换大型模型时:

if(!(xmlFile.exists()))
{Process child;

    child = Runtime.getRuntime().exec("cmd.exe /C start /min "+System.getProperty("user.dir")+"\\simex\\MDLtoXML.bat "+path+" "+xmlpath+" " +System.getProperty("user.dir")+"\\simex\\",null,null);
     try {
        child.waitFor();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

这个代码适用于小型模型,所以我认为我的项目问题是在转换结束前分析xml文件,因为错误是 : 线程“main”中的异常org.jdom2.input.JDOMParseExeception:文档文件行上的错误(...... XML):Finprématuréedufichier ............ < /强>

所以我想知道如何等待转换结束然后执行xml文件分析的第二部分。

的Nb: 我也试过把

child.getInputStream().close();
child.getOutputStream().close();
child.waitFor();

之前

Somaya。

1 个答案:

答案 0 :(得分:1)

我认为这与此处讨论的问题相同: Runtime.exec().waitFor() doesn't wait until process is done

删除start参数以在前台运行shell而不是在后台模式,以便Java等待它。