我正在使用 R 3.1.0 的 Windows 7 计算机上工作。我下载了 rcaller 2.2 和最新的 2.3,并按照 tutorial 中的顺序命令示例进行操作。 。但是,执行完最后一行代码后,程序并没有在 Eclipse 中停止。
R.exe 和 Rterm.exe 仍在任务管理器中。每次我重新运行该程序时,任务管理器中都会添加另一个 R.exe 和 Rterm.exe...
下面是Java代码:
import rcaller.RCaller;
import rcaller.RCode;
public class RCallerOnlineTest {
public static void main(String[] args) {
RCaller caller = new RCaller();
// change to your path please
caller.setRExecutable("C:/R/R-3.1.0/bin/x64/R.exe");
RCode code = new RCode();
caller.setRCode(code);
code.addDoubleArray("x", new double[]{1.0, 2.0, 3.0, 4.0, 50.0});
code.addRCode("result <- mean(x)");
caller.runAndReturnResultOnline("result");
double mean = caller.getParser().getAsDoubleArray("result")[0];
System.out.println("mean: " + mean);
boolean status = caller.stopStreamConsumers();
System.out.println(status);
}
}
输出如下:
mean: 12.0
true
所以最后打印出来的是true。我认为它表明 rcaller 已停止,但事实并非如此。我在这里错过了什么吗?我在库中找不到名为 stop 的方法...
最佳答案
谢谢你的帖子。改版59bfd7335cb8至少我希望解决这个问题。 RCaller 类中的方法 StopRCallerOnline() 现在停止 在 runAndReturnResultOnline() 中创建的内存。所有测试文件均已通过,并且任务管理器中没有任何 R 进程。
经过更全面的测试,我计划在6月15日编译并发布2.4版本。 但您仍然可以下载源代码树并使用 maven 自行编译
希望对你有用。
关于java - rcaller 2.2 和 2.3 不会通过 runAndReturnResultOnline 在顺序命令模式下停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24167677/