【问题标题】:Java/R Interface (JRI)Java/R 接口 (JRI)
【发布时间】:2012-03-19 12:00:00
【问题描述】:

我想在已经安装了 R 的 Linux 机器上从 Java 中调用一些 R 代码,因此需要 Java/R 接口 (JRI)。

但是,我不知道该怎么做。

JRI homepage 表示软件包捆绑在 rJava 中。所以,我从rJava Files section 下载了rJava-0.9.3.tar.gz,然后解压,在src/java 文件夹,以及 inst/jri 文件夹中的 2 个 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 中)。

我怎样才能做到这一点?

【问题讨论】:

    标签: java r jri rjava


    【解决方案1】:

    在 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 的规范地点。

    【讨论】:

    • 感谢您的回答。我阅读了有关 install.packages() 命令的信息,但对如何使结果与 Eclipse 一起工作感到困惑。我现在已经运行它并在 Eclipse 中添加了一个指向安装的 3 个 JAR 文件的用户库。鉴于 Eclipse 负责处理与 Java 相关的路径声明,是否应该开箱即用?
    • 不,仅 JAR 文件是不够的 - 您必须确保已设置 java.library.path 才能找到 JRI 动态库,并设置 R 所需的环境变量,例如 R_HOME。我不使用 Eclipse,所以我不知道它如何处理这些设置。您可以查看run 脚本和 JRI 示例。
    • 确实如此。 R_HOME 可以在 Project > Preferences > Run/Debug Settings 中设置,而对于 ld.library.paht,可以在 JRI 的 3 个 JAR 中的每一个中编辑“Native library”设置(根据这个 StackOverflow 帖子:stackoverflow.com/questions/957700/… )。
    • 两篇关于在 Eclipse 中设置 rJava 和 JRI 的有用帖子:stackoverflow.com/questions/3311940/…binfalse.de/2011/02/talking-r-through-java
    猜你喜欢
    • 2013-10-06
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 2011-10-20
    • 2018-01-17
    • 2015-11-18
    • 1970-01-01
    相关资源
    最近更新 更多