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

标签 java multithreading

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

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

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

}

有什么建议吗?

最佳答案

关于java - 运行外部可执行文件 (.exe) 并等待其完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17394330/

相关文章:

java - ThreadPoolExecutor与Android的线程优先级

java - 一个线程大部分时间都在运行

c - 当我创建一个新的用户空间线程时,它会出现在内核进程列表中吗?

c - OpenMP 通过缩减来折叠并行循环

java - 没有类型信息的 JVM 调用接口(interface)

Java 成员初始化模式

java - 在java中发送带有body的post请求

java - Dodgy - 已知为 null 的值的冗余 nullcheck

java - 多个套接字导致 ConnectException : Connection refused: connect

Java ServerSocket,如何每次接受2个连接?