java - Exec 命令似乎无法在 java 中正确执行

标签 java exec runtime.exec

我构建了一个 java 项目,我想从另一个 java 程序运行它。但是当我使用 exec 命令调用它时,它不会立即执行,而是等待当前程序结束。如果我添加 waitFor 语句,则程序会挂起,因为主程序正在等待进程,并且进程正在等待主程序。有谁知道我该如何解决这个问题?或者为什么它会以这种方式表现?我需要在第二个 jar 文件之前执行此 jar 文件。

Runtime.getRuntime().exec("java -jar \"JavaProject1/dist/JavaProject1.jar\"");
        System.out.println("Hello");
        p.waitFor();

jar 文件的位置很好,它会打印 hello。我想要运行的 jar 文件的主类在此线程中 DaniWeb

最佳答案

除此之外,您必须不断从进程 STDOUT 和 STDERR 中读取数据,否则它将阻塞。

例如,参见 http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

关于java - Exec 命令似乎无法在 java 中正确执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5459753/

相关文章:

java - Java 二维数组上的冒泡排序

php ffmpeg exec & shell_exec 进程在几秒后停止

java - 使用 Runtime#exec() 编译和执行 Java 代码

java - Netty:使用 `IdleStateHandler`检测断线

java - Java和Javascript计算结果的差异

PHP - 无法执行 C++ 二进制文件?

java - 如何在java中运行sudo poweroff

java - java中与Runtime.exec结合的模态对话框

java - Ruby 类实例上的等效操作(对于 Java)

c - 如何获取通过exec调用的父进程中已执行应用程序的状态?