java - 等待进程执行结束

标签 java xml

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

问题是当我尝试使用此代码通过 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):Fin prématurée du fichier......

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

铌: 我也试过把

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

child.waitFor();之前

索玛亚。

最佳答案

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

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

关于java - 等待进程执行结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30760326/

相关文章:

java - Elastic Beanstalk 上的 Tomcat - Tomcat 线程内的多线程

java - Android应用无法在Api 19上打开

python - 使用 Python 和 LXML 解析 XML 时用 Null 替换 None 对象

c# - 以特定格式将对象序列化为 XML

python - 对 .xml 文件中 <P> 内的句子进行编号?

java - 通过Java修改XPath表达式?

java - maven webapp将jsp放在/WEB-INF/jsp

java - 如何使用selenium单击按钮后获取页面源

java - 使用 JAXB 进行数字签名的命名空间处理

java - 是否可以创建一个准备好的语句并稍后在 postgres 下使用 Java 重用它?