我构建了一个 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/