我在使用R3.1.0的Windows 7机器上工作。我下载了rcall2.2和最新的2.3,并遵循了教程中的顺序命令示例。但是,在执行最后一行代码后,该程序不会在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所以最后的指纹是真的。我假设它表明rcaller停止了,但它没有。我是不是漏掉了什么?我在图书馆找不到一个叫stop的方法..。
发布于 2014-06-11 19:03:47
谢谢你的职位。修订版59bfd7335cb8解决了这个问题,至少我希望如此。类StopRCallerOnline()中的方法RCaller现在停止在runAndReturnResultOnline()中创建的内存中的R实例。所有测试文件都通过了,并且没有R进程仍然停留在任务管理器中。
经过更全面的测试后,我计划在6月15日编译并发布2.4版。但是您仍然可以下载源代码树并使用maven编译自己。
希望对你有用。
https://stackoverflow.com/questions/24167677
复制相似问题