风言枫语  

最近做项目涉及到R总结一些Java本地调用R和Java web项目中调用R的基本步骤


1.  R中安装Rserve

2.  系统变量Path加上

C:\Program Files\R\R-3.0.1\bin\i386;C:\Program Files\R\R-3.0.1\library\rJava\jri

     系统变量Classpath加上:

C:\Program Files\R\R-3.0.1\library\rJava\jri\JRI.jar  

Rserve包中可执行文件Rserve.exe copy一份到bin/i386

 

3. Java 项目 或Java web项目中加入REngine.jar, RserveEngine.jar

4. 手动开启本地的Rserve

 

 

也可以使用封装的util/RServeOps.java通过代码控制Rserve服务的开启和关闭。

 

5. Java本地测试可以运行

运行过程中控制台,输入结果如下,与直接在RStudio中运行R脚本控制台打印结果一致。

 

 

http://shao-fan.com/blog/use-rserve-in-java.html 文中介绍RserveLinux环境下可以正常使用,但Windows环境下还不完善,

所有的连接都会在一个工作空间内运行。所以当客户端是多线程程序时,可能会造成线程间互相干扰。作者封装了RService

 

6. Java web中通过Rserve方式调用R时,务必将REngine.jar, RserveEngine.jar放入web-root/*/lib之下。

 

RConnection c;
			try {
				c = new RConnection();
				REXP x = c.eval("R.version.string");
				System.out.println(x.asString());
				System.out.println("connected!");
c.eval("setwd('f:/R_Stat/')");
c.eval("dev.off()");
				c.close();
			}catch (Exception e) {
				System.out.println("Error");
				e.printStackTrace();
			} finally {
				System.out.println("finally");
			}
		}


 


 

 

测试成功。

 

posted on 2013-08-22 18:37  风言枫语  阅读(1502)  评论(0编辑  收藏  举报