0

我有一个需要从 Java 调用并运行的 R 脚本。我试过这个代码:Runtime.getRuntime().exec("Rscript pathTo/R/myScript.R")。我从 windows 命令运行它工作正常,但是当我在 Eclipse 中使用此代码运行 java 类时,什么也没有发生。控制台没有显示任何内容没有错误没有日志。有人能告诉我如何从 Java 运行这个脚本吗?

4

1 回答 1

1

默认情况下,Process从 java 启动的标准输入、标准输出和标准错误重定向到管道,您可以在 java 中访问这些管道。除非您从标准输出和错误管道中读取并自己将文本传输到 Java 应用程序的输出,否则不会看到任何输出。此外,如果管道的内部缓冲区已满,则子应用程序甚至可能在等待 root 写入其数据时阻塞。所以这个过程可能会挂起并且永远不会终止。

从 Java 7 开始,您可以让子进程使用ProcessBuilder.inheritIO. 这样可以省去您自己从这些流中读取的所有麻烦。

于 2012-08-09T19:08:33.080 回答