Java与R语言的配置,调用
来源:互联网 发布:域名费用 编辑:程序博客网 时间:2024/05/18 00:53
我是最近才接触到了R语言,所以用起来有很多的问题,之前只是想单纯想用java调用到R语言中的一些东西,没有想到这个事情并不是想象的那么简单的。好了,闲话不多说,下面我来说说我在运用R的时候遇上的问题吧。
第一步,配置R的环境。
首先,需要下载一个RGUI的东西,这个东西在我的理解上就跟JVM一个样子,我下载的版本是R 3.1.3(顺便说一句,在64位系统下面的32位的RGUI和64位的RGUI都可以使用的,我的电脑系统是64位的)。下载安装完成,我相信用java的朋友都把java的环境给配置好了,这里我就不讲java的配置了。打开系统的环境变量,在CLASSPATH中添加D:\R-3.1.3\library\rJava\jri\;(就是你那个rjava包的路径),然后在path中添加D:\R-3.1.3\bin\x64;D:\R-3.1.3\library\rJava\jri\x64;(我的系统是64位的,32位的把x64换成i386,但是强调一点你在多少位的JVM中运行R就得把R配置成多少位的,这样子配置会省很多的事情),然后配置R_HOME:D:\R-3.1.3(安装的路径)。这样子配置就算是把R的东西给配置好了。
第二步,下载rjava的包。
然后,你需要去下载你对应的rjava包,在RGUI中选程序包,选一个隔你最近的一个城市然后把rjava包下载(有时候下载不起,我在后面可以提供R 3.1.3版本的rjava包,这个包的版本不一样后面在java中一样的不能调用r)。把下载好的rjava包放在R-3.1.3\library下面(解压了的文件夹),OK下载好了,位置也放好了,进入下一步。
第三步,在myeclipse中调用R。
先在rjava包jri中找到3个包,JRI.jar,JRIEngnie.jar和REngine.jar,将这3个包放在自己的java工程中导入进去。然后在R-3.1.3\library\rJava\jri\examples中找到rtest.java和rtest2.java这两个文件,直接复制到自己的java工程中。先说说这两种连接方式有什么不同,rtest.java是直接把R的console引在了我们的java控制台中,而rtest2.java是启动一个R的一个服务,这两种方式各有优势,自己进行选择,我选择的是rtest.java的方式。说说这里会遇到的问题,第一,可能会出现java.library.path的问题,那是因为没有找到那个库,可以在VM中给他指向你的那个库在vm arguments里添加-Djava.library.path=.../.../lib;第二,可能会出现什么不能在32位系统平台中运行64位的 .dll ,出现这个错的时候说明你的配置出问题了,你要去检查你的这个java程序中配置的java是不是64位的,反正就是要把这两个的位数对应起来就行了。遇到最多的问题就是这两个了,然后基本技能跑通这个程序。
第四步,Spring MVC的项目中调用语言
可以说大多数的开发人员最重要的目的就是把这个rjava运用到项目中去。在这个步骤中,我将这个调用的方法写成了一个工具类,但是我遇见了两个大的问题,第一个,因为在项目是在tomcat中发布的,所以tomcat在加载的时候没有找到R的.dll文件,这个问题可以通过System.out.println(System.getProperty("java.library.path"));这句话,找到你用的那个tomcat下面加载文件的目录,将这个jri.dll放进去,重新运行这个就行了。第二个,是我在写工具类的时候发生的一个错误,我没有考虑到自己会多次使用到这个工具,从而导致我的电脑启动了很多个JVM,内存溢出,死机。这个问题,是通过一个单例模式的建立来解决的,我只让这个Rengine在项目中被实例化一次,这样子,他就只能被启动一次,不会导致电脑死机等等。
第五步,调用R的方法
这里调用的方法是rengine.eval("xxxxx"),xxx就是你写的R语言的代码。OK,介绍完毕。
最后就是我给大家提供的rjava包和R的安装包,http://pan.baidu.com/s/1bnynNfp。
- Java与R语言的配置,调用
- 【配置】使用Java调用R语言
- JAVA调用R语言
- JAVA调用R语言
- java 调用R语言
- JAVA调用R语言
- Java调用R语言
- JAVA调用R语言
- Reserve java调用R语言
- R语言-02-Java与R 的整合
- JAVA调用R, rJava配置
- java调用R语言之调用
- R语言调用java时遇到的问题
- C# 调用R语言环境配置
- R语言: R与java整合
- R语言与java整合
- R语言中函数定义与调用
- JAVA调用R语言之安装
- 统计并保存叶子节点(二叉树)
- elasticsearch+logstash+kibana安装配置
- linux之cp/scp命令+scp命令详解
- C#数组详细解释
- 云巴-JavaScript API测试与实例
- Java与R语言的配置,调用
- Change the user name in win
- 关于AsyncTask
- django-crontab定时任务
- 【小结】中缀表达式转后缀表达式
- Android下的vpn管理软件(一)
- PHP面向对象中类方法的两种类型:2、对象类型(获得提示)
- hdu 3616 Milking Time dp 离散化
- fedora 18 下kvm虚拟机通过libvirt实现pci pass through