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

发布于 2024-10-17 13:04:21 字数 1052 浏览 2 评论 0原文

我正在尝试使用 R 从 GSRad 项目中挂钩 Java 代码。 GSRad Java 代码可在线获取,并以 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 中的类的任何提示。罐?我很困惑。

编辑

GSRad 网站需要注册,这很烦人。包含 Java 包的 Doxygen 文档以及 One-Jar jar 文件的完整 zip 文件可在 此处,如果您弹出打开包含我想要挂钩的类的罐子,则为 这个

I'm trying to use R to hook the Java code from the GSRad project. The GSRad Java code is available online and comes as a One-Jar project jar (I was not familiar with One-Jar until today). I can run the One-Jar file just dandy using the following command (after unzipping the file from the above link):

 java -jar gsrad_sample.jar

When I pop open the gsrad_sample.jar file I see a jar titled clima_GSRAD-1.0.0.jar in the /lib/ directory which contains the class files I want to hook with R. I've pulled out the jar of my affection and tried the following, to no avail:

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

Any tips on how I might hook the classes inside the clima_GSRAD-1.0.0.jar? I'm flummoxed.

EDIT

The GSRad site requires registration which is annoying. The full zip file which contains the Doxygen documentation for the Java package as well as the One-Jar jar file is available here and if you pop that open the jar that has the classes I want to hook is this one.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

指尖凝香 2024-10-24 13:04:21

让我在回答前说一下,我不是 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" )

Let me preface my answer by saying that I'm no expert in Java / rJava, so apologies if this isn't 100% correct. I hope it's a step in the right direction though.

Start by unzipping gsrad_sample.jar to C:/gsrad (or adjust your paths based on where you unzip it). Then add all the contents of C:/gsrad/lib to your class path:

library(rJava)
.jinit()
.jaddClassPath(dir( "C:/gsrad/lib", full.names=TRUE ))
.jclassPath()
.jnew( "cra/clima/gsrad/GSRBristowCampbellStrategy" )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文