我正在尝试使用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()
当我运行此操作时,我收到此错误,我无法理解原因。请HElp
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)
答案 0 :(得分:2)
尝试使用runOnly()
代替runAndReturnResult()
。
我认为runAndReturnResult("done")
将运行您的代码并返回尚未初始化的变量“done”中的值。
所以,只需使用runOnly()
即可运行您的代码。如果您需要查看结果,请尝试将结果重定向到任何流或控制台。
答案 1 :(得分:0)
尝试逃避路径中的空间。从错误看起来这可能是一个问题。另请查看此问题:Error under bridge between R and Java
答案 2 :(得分: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的问题。