我想在已经安装R的Linux机器上从Java内部调用一些R代码,因此需要Java / R接口(JRI)。
但是,我不确定该如何处理。
JRI homepage表示该软件包捆绑在rJava中。因此,我从rJava Files section下载了rJava-0.9.3.tar.gz,并将其解压缩,并在src / java文件夹中获取了很多Java源文件(及其对应的类),外加2个inst / jri文件夹中的JAR(JRIEngine.jar和REngine.jar)。
尽管JRI Files section除了上述2个JAR之外,还包括JRI.jar,所有这三个库都比inst / jri中的2个库更新。
另外,这3个JAR都没有包含src / java中的类的二进制文件,这似乎是从Java内部调用R所必需的。
在java / src文件夹中运行“ make all”似乎只执行了一些测试,并且没有生成JAR。
我希望所有必需的类都捆绑在JAR文件中,以便可以轻松地将它们添加到类路径和IDE项目中(例如,在Eclipse中)。
我要如何达到这一点?
最佳答案
在R中使用install.packages("rJava")
-将安装包括JRI的rJava。使用R CMD INSTALL rJava_0.9-3.tar.gz
将获得相同的效果。两者都是记录的安装R软件包的方法。之前,请确保已安装JDK并将R配置为具有Java支持。安装后,您可以使用system.file("jri",package="rJava")
向R询问JRI的位置。
请注意,要使用JRI,您需要正确设置环境(通常使用R CMD
)并设置java.library.path
以包括JRI位置。您可能需要扫描stats-rosuda-devel邮件列表,这是询问rJava / JRI的规范位置。