运行外部可执行文件(.exe)并等待它完成

时间:2013-06-30 20:01:21

标签: java multithreading

我一直在尝试运行一个可执行文件并等待它完成运行,并且它处于一个循环中,因此它会运行多次。我只是无法让它运行和等待。我试图在程序中添加一个缓冲区以及堆栈跟踪。

我要运行的文件是我的C驱动器中的可执行文件,您可以在我的代码中看到。可执行文件从另一个文本文件中获取输入,这是我在运行可执行文件之前修改的内容。该文本文件包含100多种化学物质和超过1000种可执行文件的反应。我想要做的是使用可执行文件生成的输出修改输入。有趣的是,可执行文件输出到同一个文件。

这只是为了介绍可执行文件的作用。这就是为什么我把它放在一个循环中,因为我在几分之一秒内运行这些反应,我将获取输出并将它们放入另一个文本文件中以便以后进行数据分析。但是目前看来我试图获取可执行文件的所有方法和代码都不起作用,甚至可能是因为waitFor函数。老实说,我不知道还能做什么,而且我不知道如何更具体地解决我的问题。我是一个java新手,需要一些指导,我需要做些什么来推动我的进步。

while(finalTime < 1.0){
  try{

    Runtime rt = Runtime.getRuntime();

    Process pr = rt.exec("C:file", 
        null, new File("C:file")); 

    int exitVal = pr.waitFor();
    System.out.println("Exited with error code "+exitVal + "intital:" + initialTime + ", finalTime:" + finalTime);

    pr.destroy() ;

  }catch(IOException | InterruptedException pr){ 

  pr.printStackTrace()
  }

  initialTime+= 0.10;
  finalTime+=0.10;

  updateTime();

}

有什么建议吗?

1 个答案:

答案 0 :(得分:2)