【问题标题】:Frustration using rJava to call a third party Java jar使用 rJava 调用第三方 Java jar 的挫败感
【发布时间】:2011-06-27 07:06:55
【问题描述】:

我正在尝试使用 R 来挂钩 GSRad 项目中的 Java 代码。 GSRad Java 代码是 available online 并作为 One-Jar 项目 jar 提供(直到今天我才熟悉 One-Jar)。我可以使用以下命令运行 One-Jar 文件(从上面的链接解压缩文件后):

 java -jar gsrad_sample.jar

当我打开 gsrad_sample.jar 文件时,我在 /lib/ 目录中看到一个名为 clima_GSRAD-1.0.0.jar 的 jar,其中包含我想与 R 挂钩的类文件。我已经取出了我的感情并尝试了以下方法,但无济于事:

library(rJava)
.jinit()
.jaddClassPath( "/home/jal/Documents/DSSAT/gsrad/clima_GSRAD-1.0.0.jar" )
.jnew( "cra/clima/gsrad/GSRBristowCampbellStrategy" )

关于如何将类挂接到 clima_GSRAD-1.0.0.jar 中的任何提示?我很困惑。

编辑

GSRad 网站需要注册,这很烦人。包含 Java 包的 Doxygen 文档以及 One-Jar jar 文件的完整 zip 文件可在here 获得,如果你弹出它,打开包含我想要挂钩的类的 jar 是this one。

【问题讨论】:

    标签: r rjava


    【解决方案1】:

    让我先说我不是 Java / rJava 方面的专家,所以如果这不是 100% 正确,我深表歉意。我希望这是朝着正确方向迈出的一步。

    首先将gsrad_sample.jar 解压缩为C:/gsrad(或根据解压缩位置调整路径)。然后将C:/gsrad/lib 的内容all添加到你的类路径中:

    library(rJava)
    .jinit()
    .jaddClassPath(dir( "C:/gsrad/lib", full.names=TRUE ))
    .jclassPath()
    .jnew( "cra/clima/gsrad/GSRBristowCampbellStrategy" )
    

    【讨论】:

    • 我希望我能从中学到一些东西,而不是“当事情不起作用时,尝试向类路径添加更高的分支。”类路径对我来说似乎是神秘的咒语。
    • @JD Long:也可能是您要使用的类依赖于其他 jar 文件中的类。
    • 这也是我的怀疑。但这给我留下了一个挥之不去的问题,“我怎么会知道……除非通过反复试验?”
    猜你喜欢
    • 2017-08-07
    • 2010-11-09
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 2018-09-17
    相关资源
    最近更新 更多