我正在尝试使用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} }。
答案 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" )