2012-08-09 145 views
0

我有一个R脚本,需要从Java调用并运行。我试过这个代码:Runtime.getRuntime().exec("Rscript pathTo/R/myScript.R")。我运行它从Windows命令它工作得很好,但是当我在Eclipse中使用此代码运行Java类时,没有任何反应。控制台不显示任何错误没有日志。有人能告诉我如何从Java运行这个脚本吗?从Java运行R脚本

回答

1

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

从Java 7开始,您可以让子进程使用ProcessBuilder.inheritIO从Java应用程序中继承它的I/O通道。这可以节省您自己从这些流中读取的所有麻烦。