Java Rcaller将q字符添加到StringBuffer的末尾

Java Rcaller将q字符添加到StringBuffer的末尾,java,r,rcaller,Java,R,Rcaller,我正在使用RCaller从Java调用R。请参阅以下Java代码: RCaller caller = new RCaller(); RCode code = new RCode(); caller.setRscriptExecutable("/usr/bin/Rscript"); caller.cleanRCode(); String x = "is.installed <- function(mypkg){ \n" + "is.element(mypkg,

我正在使用RCaller从Java调用R。请参阅以下Java代码:

RCaller caller = new RCaller();
RCode code = new RCode();
caller.setRscriptExecutable("/usr/bin/Rscript");
caller.cleanRCode();

String x = "is.installed <- function(mypkg){ \n" +
               "is.element(mypkg, installed.packages()[,1])\n"+
           "}\n" +
           "is.installed(\"bbmle\")";
StringBuffer s = new StringBuffer(x);
code.setCode(s);

System.out.println(x);
caller.setRCode(code);
caller.redirectROutputToConsole();
caller.runOnly();
RCaller发送一个

q("yes")
在RunOnly方法中,将命令发送到R,但当您忘记在代码末尾添加回车符时,并非所有的R代码都可以发送到R,只发送q部分。使用

is.installed(\"bbmle\")\n
相反

is.installed(\"bbmle\")\n