0

我正在尝试使用 RCaller 从 java 连接 R,这是我的代码

RCaller caller = new RCaller();
RCode code = new RCode();
caller.cleanRCode();
caller.setRscriptExecutable("C:/Program Files/R/R-3.0.2/bin/Rscript.exe");
code.addRCode ("source(\"D:/Data Mining workspaces/Workspace/CQpackage/First_try.R\")");
code.addRCode("myinput()");
caller.setRCode(code);
caller.runAndReturnResult("Done");

First_try.R 包含一个函数定义,该函数称为myinput()

当我运行这个我得到这个错误,我无法理解原因。请帮忙

rcaller.exception.RCallerExecutionException: Can not run C:/Program Files/R/R-3.0.2/bin/Rscript.exe. Reason: java.io.IOException: Cannot run program "C:/Program": CreateProcess error=2, The system cannot find the file specified
at rcaller.RCaller.runAndReturnResult(RCaller.java:393)
4

3 回答 3

2

尝试使用runOnly()而不是runAndReturnResult().

我想这runAndReturnResult("done")将运行您的代码并返回尚未初始化的变量“done”中的值。

因此,只需使用runOnly()which 即可运行您的代码。如果您需要查看结果,请尝试将结果重定向到任何流或控制台。

于 2016-06-27T13:49:12.397 回答
0

尝试逃离路径中的空间。从错误看来,这可能是一个问题。另请查看这个问题:R 和 Java 之间的桥接错误

于 2014-05-07T06:36:17.513 回答
0

请换行

caller.setRscriptExecutable("C:/Program Files/R/R-3.0.2/bin/Rscript.exe");

经过

caller.setRscriptExecutable("C:\\Program Files\\R\\R-3.0.2\\bin\\Rscript.exe");

在 Windows 中。似乎这是一个 Java 问题,而不是关于 RCaller 的问题。

于 2014-05-07T10:10:12.857 回答