Java调用R——rJava的安装和配置
rJava是Java通过JRI调用R所要安装的包。配置起来比较麻烦,我参考网上进行配置,使用rJava包中example里面的示例测试,控制台显示:
Cannot find JRI native library! Please make sure that the JRI native library is in a directory listed in java.library.path.
java.lang.UnsatisfiedLinkError: D:\developmentTools\R-3.1.1\library\rJava\jri\jri.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
意思是JVM不能加载32位的 .dll文件。我就反复修改,最终经过多次尝试终于成功了。下面介绍我是如何安装和配置的。
1.下载rJava.
下载和安装rJava很简单,只需要,在R中输入install.packages("rJava"),然后选择需要安装的镜像即可。如下图:

我选择的是China(Beijing 2)。选择后就会自动安装了。
下载完成后在R主目录的library目录中会多出一个rJava目录,这就是刚才下载的rJava包。
2.配置环境变量:
首先新建系统变量 变量名为R_HOME, 变量值为安装R的主目录,例如我的是:D:\developmentTools\R-3.1.1,这个需要根据自己的目录进行修改。然后在CLASSPATH变量中直接添加 %R_HOME%\library\rJava\jri\JRI.jar; 注意多个变量要用分号隔开, 下面的步骤很关键。在下载的rJava包中同时包含32位和64位的文件,要根据你的JVM是32位还是64位来选择。如下图:

jri文件夹中有i386(表示32位)和x64(表示64位)两个文件夹,里面分别放置的是32位和64位的jri.dll。jri文件夹中也有jri.dll这个文件,但其默认是32位的(可根据大小区分,64位的更大),如果你JVM是64位的,则需要用x64文件夹中的同名文件替换掉它。我的JVM是64位的,网上很多都是按照32位来讲的,所以我一直没成功。替换后成功了。然后再配置Path变量,在path变量中添加: %R_HOME%\bin\x64;%R_HOME%\library\rJava\jri; 。(如果你JVM是32位的, x64改为i386)
3.测试。
可使用rJava包中的示例进行测试,注意要添加JRI.jar, JRIEngine.jar, REngine.jar三个包文件。
Java调用R——rJava的安装和配置的更多相关文章
- Rsession让Java调用R更简单
Rsession让Java调用R更简单 R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒. ...
- JAVA 调用 R 语言
1 简介 R是统计计算的强大工具,而JAVA是做应用系统的主流语言,两者天然具有整合的需要.关于整合,一方面,R中可以创建JAVA对象调用JAVA方法,另一方面,JAVA中可以转换R的数据类型调用R的 ...
- Java调用R语言
R是统计计算的强大工具,JAVA是做应用系统的主流语言.JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的系统. 一.Rserve(远程通信模式) Rserve是一个基于TCP/ ...
- Java 调用R 方法
JAVA 调用 R 语言 1 简介 R是统计计算的强大工具,而JAVA是做应用系统的主流语言,两者天然具有整合的需要.关于整合,一方面,R中可以创建JAVA对象调用JAVA方法,另一方面, ...
- JAVA调用R脚本
0 前言R是一种非常方便易用的绘图.统计分析.ML算法设计方面的脚本语言.实际中有这样一种场景:算法工程师用R搭建了机器学习算法模型,想用于javaweb之中但是又不想重新用java写一遍算法模型,那 ...
- JAVA 调用 R 语言之升华篇
由于项目的需要,最近做了一个javaWeb调用R的组件,在这里,我把自己走的一些弯路给大家总结一下: 一.选取什么插件作为java和R之间的通信? 1. 在传统的方式中,大致可以分为两类:一类是JRI ...
- JAVA调用R
JAVA很适合开发应用系统,但是数学建模和计算能力非其所长,如果该系统需要进行大量的统计或者优化的计算,调用R是一种很好的方式.JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的 ...
- Java调用R(二)_JRI
推荐使用.相比RServe更灵活,效率更高. 基本步骤 1. R中需要安装rJava包. 2. 系统变量Path加上 C:\Program Files\R\R-3.0.1\bin\i386;C:\ ...
- Java调用R(一)_Rserve
最近做项目涉及到R总结一些Java本地调用R和Java web项目中调用R的基本步骤 1. R中安装Rserve包 2. 系统变量Path加上 C:\Program Files\R\R-3.0.1 ...
随机推荐
- java.util.zip.GZIPInputStream.readUByte,Not in GZIP format错误处理
问题一: 使用webclient抓取网页时报错:(GZIPInputStream.java:207) atjava.util.zip.GZIPInputStream.readUShort(GZIPIn ...
- qemu 调试(二)
我见过最全的剖析QEMU原理的文章 qemu代码分析 qemu中ELF文件的加载 几个关键点,可以设计断点,观察. $ cat command.gdbset breakpoint pending on ...
- 随心所欲~我也做个集合遍历器吧(自己的foreach,委托的威力)
感觉微软在面向对象三大原则中,封装性运用的最为突出,它会将一些复杂的算法,结构,功能代码进行封装,让程序员在使用时十分得心应手,如关键字里的foreach和labmda表达式里的Foreach等等,今 ...
- Cocos2d-x 3.0 lua规划 真正的现在Android在响应Home密钥和Back纽带
local listenerKey= cc.EventListenerKeyboard:create() local function onKeyReleaseed(keycode,event) if ...
- Oracle 客户端配置笔记
1.右击桌面的我的电脑 -> 高级 -> 环境变量,新建 1) 变量名:ORACLE_HOME 变量值:D:\app\instantclient_11_2 2) 变量名:TNS_ADMIN ...
- 前自加(++a)与后自加(a++)的差别
自加是自己加1的操作.比如a++ 是a+1 ,变量a变成了 a+1的值. 如果是简单的只做 a++:或者++a的语句,效果是一样的. 但是如果嵌入到复杂的语句中,比如 b = a++: 和 b = + ...
- c#Ulong用一个高位Uint和低位Uint表示
有时候考虑到平台之间的通用性,可能把一个Ulong拆分成2个Uint来进行各平台之间的通讯,当时转换的时候有点头晕,对与或预算不是很熟悉,不过还是花了半小时弄出来了,代码: //ulong的最大值2^ ...
- CSS完美兼容IE6/IE7/IE8/IE9/IE10的通用方法
关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一.CSS HACK 以下两种方法几乎能解决现今所有HA ...
- Android程序报错 Connection refused 处理
在用Android测试JSON数据解析的时候,报了这样一个异常: java.net.ConnectException: localhost/ - Connection refused 原来模拟器默认把 ...
- HDU 5274 Dylans loves tree(树链剖分)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5274 [题目大意] 给出一棵树,每个点有一个权值,权值可修改,且大于等于0,询问链上出现次数为奇数 ...