Java 使用 JRI调用R语言
今天帮同学调一个数据分析可视化的项目,其中使用到了java 调用 R语言进行数据分析。在项目启动的时候总是报错
// java.lang.UnsfiedLinkError: no jri in java.library.path
这是一个比较老的SSH的web项目。最后通过从网上查找,测试最终解决了这个问题。解决步骤如下。
环境:
环境 macOS
java version JDK 1.8
R version R 3.4
编译器IntelliJ
安装R语言环境,然后下载如下几个jar包:JRI JRIEngine REngine 添加依赖。
第二部设置项目运行时环境:添加 -Djava.library.path
这个参数的完整路径为:-Djava.library.path=/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/jri
这个参数的是刚刚下载的那三个依赖包的路径在 /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/jri文件下有JRI JRIEngine REngine这三个的jar包。
配置完成后发现还是报错:说找不到R_HOME路径。发现没有配置R的环境。然后打开.bash_profile文件配置R的环境变量。如下所示:
这个中间出现了一个问题。就是配置完成后我使用 source .bash_profile命令是配置的环境变量生效。在命令行中使用
echo $R_HOME可以打印出来的,但是在程序中获取这个变量就是为空。最抠重启了mac终于找到了这个变量。问题也解决了。