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

JD *_*ong 10 r rjava

我正在尝试使用R来挂钩GSRad项目中的Java代码.GSRad Java代码可以在线获得,并作为One-Jar项目jar(直到今天我还不熟悉One-Jar).我可以使用以下命令运行One-Jar文件(在从上面的链接解压缩文件之后):

 java -jar gsrad_sample.jar
Run Code Online (Sandbox Code Playgroud)

当我弹出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" )
Run Code Online (Sandbox Code Playgroud)

关于我如何挂钩clima_GSRAD-1.0.0.jar中的类的任何提示?我很沮丧.

编辑

GSRad网站需要注册,这很烦人.其中包含了Java包的Doxygen文档以及单瓶瓶文件的完整的zip文件,请点击这里,如果你弹出打开有我想要挂钩类的罐子是这一个.

Jos*_*ich 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" )
Run Code Online (Sandbox Code Playgroud)

  • 我希望我能从中学到一些东西,"当事情不起作用时,尝试在类路径中添加更高的分支." 类路径对我来说似乎是神秘的咒语. (2认同)