【问题标题】:Rserve Exception: Handshake failedRserve 异常:握手失败
【发布时间】:2012-01-19 11:06:50
【问题描述】:

我是 R 语言的新手 并且正在使用 RConnection 在 java 中尝试一个简单的程序,但它给出了这个异常

org.rosuda.REngine.Rserve.RserveException: Handshake failed: expected 32 bytes header, got -1
    at org.rosuda.REngine.Rserve.RConnection.<init>(RConnection.java:107)
    at org.rosuda.REngine.Rserve.RConnection.<init>(RConnection.java:60)
    at org.rosuda.REngine.Rserve.RConnection.<init>(RConnection.java:44)
    at test.sandeep.main(sandeep.java:9)

那是在RConnection 的导体中。谁能告诉我可能出了什么问题 封装测试;

import org.rosuda.REngine.Rserve.RConnection;

public class sandeep {
public static void main(String[] str) {

    try {
        System.out.println("hii");
        RConnection c = new RConnection();
        System.out.println("hii");
        double d[] = c.eval("rnorm(10)").asDoubles();
        for (double td : d) {
            System.out.println(td);
        }

    } catch (Exception ex) {
        ex.printStackTrace();
    }

}

}

【问题讨论】:

    标签: java r rserve


    【解决方案1】:

    错误表示连接到 Rserve 后立即读取失败。您的 Java 代码很好(假设您正在连接到 Rserve 的本地实例)。问题可能在另一边——检查 Rserve 是否正在运行(请参阅Rserve FAQ)。您还可以在调试模式(R 中的Rserve(TRUE))下启动 Rserve,以查看服务器端发生的情况。

    【讨论】:

      【解决方案2】:

      如果您在 linux 机器上运行 RServe,请确保您在 /etc/ 位置具有名称为“Rserv.conf”并包含内容的配置文件

      远程启用

      这可以远程访问 RServe

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-28
        • 2017-06-19
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多