我是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的contuctor中。谁能说出什么可能是错误的包测试;
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();
}
}}
发布于 2013-04-01 18:49:15
如果您在linux机器上运行RServe,请确保在/etc/ location中有名为"Rserv.conf“的配置文件和内容
远程启用
这样就可以远程访问RServe
发布于 2012-03-05 09:25:35
该错误指出在连接到Rserve后立即读取失败。您的Java代码没有问题(假设您正在连接到Rserve的本地实例)。问题可能出在另一端--检查Rserve是否正在运行(请参阅Rserve FAQ)。您还可以在调试模式下启动Rserve (R中的Rserve(TRUE)),以查看服务器端发生了什么。
https://stackoverflow.com/questions/8925000
复制相似问题