1

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

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

那只是为了提供有关可执行文件功能的一些背景知识。这就是为什么我将它放在一个循环中的原因,因为我在几分之一秒的时间内运行这些反应,我将在其中获取输出并将它们放入另一个文本文件中以供以后进行数据分析。但目前看来,我试图获取可执行文件的所有方法和代码都不起作用,甚至可能是因为 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();

}

有什么建议么?

4

1 回答 1

2

看看http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

您可能会填满缓冲区。

于 2013-06-30T20:06:55.567 回答