2011-02-15 64 views
10

我试图用R钩住GSRad项目中的Java代码。 GSRad Java代码是available online,并且作为One-Jar项目jar(直到今天我还不熟悉One-Jar)。我可以花花公子使用下面的命令(解压从上面的链接文件后)运行一个-JAR文件:使用rJava调用第三方Java jar的沮丧

java -jar gsrad_sample.jar 

当我弹出打开gsrad_sample.jar文件我看到标题clima_GSRAD-1.0的罐子。在

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

任何提示:0.jar在/ lib /目录中包含的类文件我想和R.挂钩,我拿出我的感情的罐子,并试图以下,无果我怎么可能钩在clima_GSRAD-1.0.0.jar中的类?我迷失了方向。

EDIT

的GSRad站点要求注册这是恼人的。包含Doxygen文档的Java包以及One-Jar jar文件的完整zip文件可用here,如果弹出打开包含我想要钩的类的jar文件,则为this one

回答

8

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

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

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

我希望我可以从这个相互学习的东西比,“尝试添加更高的分支到classpath当事情不工作。”类路径似乎对我来说是神秘的咒语。 – 2011-02-15 16:48:44