1

我正在使用 R 3.1.0 使用 Windows 7 机器。我下载了 rcaller 2.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 的方法...

4

1 回答 1

0

谢谢你的文章。修订版59bfd7335cb8解决了这个问题,至少我希望如此。RCaller 类中的方法 StopRCallerOnline() 现在停止在 runAndReturnResultOnline() 中创建的内存中的 R 实例。所有测试文件都通过并且没有 R 进程仍然留在任务管理器中。

经过更全面的测试,我计划在 6 月 15 日编译并发布 2.4 版本。但是您仍然可以下载源代码树并使用 maven 自行编译

希望对你有用。

于 2014-06-11T19:03:47.283 回答