Java 使用 JRI调用R语言

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

Java 使用 JRI调用R语言_第1张图片

这个参数的完整路径为:-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的环境变量。如下所示:

Java 使用 JRI调用R语言_第2张图片

这个中间出现了一个问题。就是配置完成后我使用 source .bash_profile命令是配置的环境变量生效。在命令行中使用

echo $R_HOME可以打印出来的,但是在程序中获取这个变量就是为空。最抠重启了mac终于找到了这个变量。问题也解决了。

你可能感兴趣的:(R,工具,java)