最近尝试学习使用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与R语言的整合使用,以及如何通过Rserve实现远程调用R脚本的功能,从而扩展Java在数据分析和可视化方面的能力。首先,文中阐述了Java和R语言各自的强项与不足,指出Java虽然在应用开发方面表现出色,...
以上介绍了三种不同的Java调用R语言的方法:JRI、Rserve和Rsession。每种方法都有其独特的特点和适用场景。JRI适用于简单的R函数调用;Rserve提供了基于网络的客户端连接能力;而Rsession则提供了一套更加高级和友好...
本篇将详细探讨如何通过Rserve来实现Java调用R脚本,从而在Java程序中充分利用R语言的功能。 Rserve是一个开源的R语言服务端,它允许远程客户端与R环境进行通信,执行R脚本并获取结果。这使得Java等其他语言能够...
rJava是利用JNI(Java Native Interface)实现R与Java的本地交互,但因为实际应用中常常需要远程调用R脚本,所以rJava在远程通信场景下不常用。Rserve则是一个基于TCP/IP协议的客户端/服务器程序,它允许R语言与其他...
除了基本的连接和执行命令外,还可以通过Rserve发送更复杂的R脚本,处理数据、调用R函数,甚至进行错误处理和结果转换。此外,RUtils是一个基于Rserve的连接池工具,可以提高在多线程环境中与R交互的效率,虽然在...
这两种方式都可以实现Java调用R的功能,但Rserve更适用于网络环境中,因为它提供了一个基于TCP/IP协议的服务端口,使得远程调用成为可能。 1. **使用Java与RServer通信**: - 需要添加相应的Java库到项目中,例如...
Rserve是一个R语言的远程服务器接口,允许其他程序(如Java)通过网络连接直接与R进行通信。要使用Rserve,需先确保R环境已安装,然后在R的命令行界面安装Rserve包,输入`install.packages("Rserve")`。安装完成后,...
需要注意的是,rJava是一种通过JNI(Java Native Interface)来实现R与Java通信的方式,但由于远程调用的需求,本应用中并未采用。另外,RUtils是一个基于Rserve的连接池工具,尽管未在项目中使用,但可以提供更高效...
`RserveEngine.jar` 是 Rserve 的Java客户端,Rserve 是一个开源项目,它允许远程或本地进程通过网络连接与R交互。`RserveEngine` 提供了连接到运行Rserve的服务的便利,使Java程序能够安全地执行R代码,而不必在同...
同时,为了确保系统的健壮性,需要对可能出现的错误和异常进行处理,例如Rserve连接失败、计算超时等。 最后,为了方便日后的维护和扩展,接口设计应遵循模块化原则,将R语言的预测模型封装为独立的服务,Java应用...
其中,Rserve包提供了一个服务器,允许远程连接和通信,而JRI(Java/R Interface)则提供了更底层的接口,它允许在Java环境中嵌入R解释器。这些方法都可以实现计算参数的交互输入以及分析结果的输出。 文章通过一个...
2. **Rserve**: Rserve是一个R语言的服务器,可以提供远程接口让其他程序(如Java)直接调用R函数。Java通过Rserve的API与R进行交互,这种方式更高效且易于管理。 3. **JRI (Java-R Interface)**: JRI是R的Java绑定...
2. Rserve-1.0.jar:Rserve是一个远程R服务器,它提供了一种跨进程通信的方式,使得其他程序(如Java、Python等)可以与R交互。通过Rserve,你可以在不同的进程中运行R,而无需在每个进程中都安装R。这提高了效率,...
`RserveEngine`则为Java开发者提供了一个方便的API,可以直接在Java代码中调用`Rserve`服务,实现与R的远程交互。通过`RserveEngine`,Java程序员可以创建R会话、发送R命令、读取结果,甚至处理复杂的R脚本,无需...
2. **Rserve**:Rserve是R的一个网络服务器,它允许远程程序通过TCP/IP连接控制R进程。在Matlab中,可以使用socket编程或者现成的Rserve客户端库(如RSclient)来连接Rserve。首先,需要在R环境中启动Rserve,然后在...
“ ”构建包,其中包括用于支持使用多种语言的 Rserve 客户端库的远程调用者。 这是一个分支,主要对脚本进行了修改,以在使用时为与CloudFoundry 集成提供一条更轻松的路径。 示例 Java 用法 $ cd ~ /workspace/...
RserveEngine.jar可能是Rserve的Java客户端库,它允许Java应用连接到运行Rserve的服务器,从而在不直接安装R的情况下进行远程R操作。 5. **Rsession-1.8.3.jar**:这个名字暗示它可能是一个特定版本的R会话管理器,...
Cloud Foundry R构建包用于“ ”构建包,其中包括以使用多种语言提供的Rserve客户端库来支持远程调用者。 这是一个分支,主要对脚本进行了修改,以在使用时为与CloudFoundry 集成提供更轻松的路径。示例Java用法$ cd...