【问题标题】:How to set the classpath for rJava in R?如何在 R 中设置 rJava 的类路径?
【发布时间】:2010-06-23 17:32:07
【问题描述】:

我有一个包含几个 jar 文件的 R 包。 为了更好地维护,我想将 jar 拆分到一个单独的包中,并在主包中包含 R 源代码和两个小 jar。
但是现在,如果我调用我的函数,我总是会从 rJava 收到“NoClassDefFoundError”。

在主包中,我有一个 onLoad 函数,它使用 .jpackage 函数启动 JVM。
根据帮助,这个函数需要一个“morePaths”参数,我提供了两个 jar 文件的绝对路径。但它不会起作用。

我也尝试过使用

jar.one = paste(lib,pkg,"java","One.jar",sep=.Platform$file.sep)
jar.two = paste(lib,pkg,"java","Two.jar",sep=.Platform$file.sep)
.jinit(classpath=c(jar.one,jar.two))

onLoad 函数内部。

任何提示将不胜感激,
马丁

【问题讨论】:

标签: r classpath


【解决方案1】:

试试.jaddClassPath

.jaddClassPath("blah.jar")

【讨论】:

  • 这是在 RJava 中将 Jars 添加到类路径的正确方法(唯一方法?)。你想把你的罐子放在一个包里,然后从另一个包里调用它们?不确定这是否可行。为什么你甚至想这样做?如果您需要分离包,请将包装器 R 函数放在“jar 包”中,然后您将从第二个包中调用它。
  • 如果我尝试使用 .jaddClassPath("blah.jar"),jar 文件不会出现在 .jclassPath() 的输出中。而且我必须拆分包,因为库太大了。为了更好的版本控制。
  • 刚刚发现我安装了 rJava 0.8-4,其中包含有关 .jclassPath 输出的错误。安装了 0.8-5,现在它显示了修改后的 classPath。
  • 那么 .jaddClassPath 对你有用吗?如果是这样,请接受答案以向未来的访客发出信号。否则,请随时发布您的最终解决方案。
猜你喜欢
  • 1970-01-01
  • 2011-11-27
  • 2012-11-04
  • 2016-02-12
  • 1970-01-01
  • 1970-01-01
  • 2015-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多