0

基本设置是在后台运行基于 Java 的 UI 和 R。Rserve实用程序有助于解决这种情况。

众所周知,Rserve 虽然不是一个包,但可以像普通的 R 包一样安装和运行。一个简单的library(Rserve)将调用它,在 Windows 任务管理器中,您会看到该进程启动并运行。

但是,还有另一种方法,无需经常访问 R 控制台,即用 Java 本身编写脚本。

/**
     * initiate R serve
     */
    try {
        Process p=Runtime.getRuntime().exec("R CMD Rserve --vanilla"); //I'm stuck here
        p.waitFor();
    } catch (IOException e1) {
        e1.printStackTrace();
    } catch (InterruptedException e2) {
        e2.printStackTrace();
    } 

问题是,R CMD Rserve --vanilla不工作。它说,

`Rserve` is not recognised as internal or external command. 

我的 R CMD 是完美的,R 运行良好,Rscript 也是如此,但不是Rserve。我想知道如何在 R 安装中为 Rserve 设置适当的目录/路径,以便解决此错误?

4

1 回答 1

1

我意识到这个问题来自很久以前,但我觉得对于那些感兴趣的人来说仍然需要一个答案。

按照建议:

二进制安装无法写入 $R_HOME/bin ,因此上述 Rserve() 函数是在这种情况下启动 Rserve 的唯一可靠方法。

而不是使用

R CMD Rserve

利用

Rscript -e "library(Rserve); Rserve()"

此外,对于那些对 Rserve 文档 ( ?Rserve) 中关于该行的评论感到困惑的人:

Java 开发人员可能希望在 java/Rserve/test 示例中查看 StartRserve 类,以便轻松地从 Java 启动 Rserve。

您可以通过提取内容并导航到./clients/java/Rserve/test/StartRserve.java在https://rforge.net/Rserve/snapshot/Rserve_1.8-8.tar.gz中找到该类。

于 2021-08-26T06:11:01.667 回答