2

私は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();
    }

}

}

4

2 に答える 2

3

エラーは、Rserve に接続した直後に読み取りが失敗したことを示しています。Java コードは問題ありません (Rserve のローカル インスタンスに接続していると仮定します)。問題は別の側にある可能性があります。Rserve が実行されていることを確認してください ( Rserve FAQを参照)。Rserve をデバッグ モード ( Rserve(TRUE)R) で起動して、サーバー側で何が起こるかを確認することもできます。

于 2012-03-05T01:25:34.787 に答える