使用rJava来调用第三方Java jar的挫败感

时间:2011-02-15 00:20:09

标签: r rjava

我正在尝试使用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挂钩的类文件。我已拉出jar我的感情和尝试以下,无济于事:

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是{{3} }。

1 个答案:

答案 0 :(得分:8)

让我先说一下我的回答是说我不是Java / rJava的专家,所以如果这不是100%正确的话,请道歉。我希望这是朝着正确方向迈出的一步。

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

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