Java 远程调用Rserve 连接失败问题

最近尝试学习使用R,在安装及本地R窗口使用都没有问题。
准备使用远程调用的时候遇到了一些连接问题.记录下来与大家分享。

我使用的R版为3.1.3

在安装的时候一路Next 也没有多想。

本地有一个JAVA环境,也有一个R环境。本地JAVA调用本地R一点问题都没有,现准备调用远程的R服务。
网上都是一堆调用Linux环境的。
但我只有一台window,所以采用了远程调用windows上的R。
library(Rserve)
Rserve()
命令启动都没有问题:
写了一段JAVA代码:
public void callRserve() throws RserveException, REXPMismatchException {
RService rService = new RService();
RConnection conn = new RConnection("10.172.6.51");
rService.setConn(conn);
RConnection c = rService.startTransaction(); //开始独占工作空间
REXP x = c.eval("R.version.string");
System.out.println(x.asString());// 打印变量x
c.close();
}

public static void main(String[] args) {
try {
RserveBegin pb = new RserveBegin();
pb.callRserve();
} catch (Exception e) {
e.printStackTrace();
}
}

直接报连接失败,困扰很久没有找到问题。
网上也有说明远程调用要到安装目录C:\Program Files\R\R-3.1.3\bin\i386
下面输入:R CMD Rserve --RS-enable-remote可以输入后直接报Rserve 不是外部或者内部命令,傻眼了。
 猛的一看Rserve.exe文件都没有,狂晕。
在本地搜索了一下Rserve.exe在C:\Program Files\R\R-3.1.3\library\Rserve\libs\i386
把里面的三个文件复制到C:\Program Files\R\R-3.1.3\bin\i386 
后启动成功了。。。远程也可以正常调用了。

你可能感兴趣的:(java)