实例化RInScala会导致NoSuchMethodError

时间:2014-08-01 20:41:49

标签: r scala

我正在尝试使用JVMR将R集成到Scala中。尝试实例化RInScala时,我得到一个NoSuchMethodError。

我正在使用安装在C:\ Program Files \ R \ R-3.1.1下的R的Windows 7计算机,而Scala版本2.11.1安装在C:\ Program Files(x86)\ scala下。我正在使用Scala插件开发IntelliJ,并使用Scala工作表来测试它作为POC。我的Scala项目确实将JVMR 2.11-2.11.1.1.jar显示为包含的库。工作表目前非常基础 - 只是导入和实例化尝试。

import org.ddahl.jvmr.RInScala
val R = RInScala()

在IntelliJ中运行工作表时,我看到以下输出,所以我可以说它已成功导入类,但无法实例化。

import org.ddahl.jvmr.RInScala
java.lang.NoSuchMethodError: scala.runtime.ObjectRef.create(Ljava/lang/Object;)Lscala/runtime/ObjectRef;
at org.ddahl.jvmr.RInScala$.findROnWindows(RInScalaTest.sc2318647708135405919.tmp:804)
at org.ddahl.jvmr.RInScala$.defaultExecutable$lzycompute(RInScalaTest.sc2318647708135405919.tmp:822)
at org.ddahl.jvmr.RInScala$.defaultExecutable(RInScalaTest.sc2318647708135405919.tmp:821)
at org.ddahl.jvmr.RInScala.<init>(RInScalaTest.sc2318647708135405919.tmp:28)
at org.ddahl.jvmr.RInScala$.apply(RInScalaTest.sc2318647708135405919.tmp:838)
at com.xxxx.r_in_scala.A$A1$A$A1.R$lzycompute(RInScalaTest.sc2318647708135405919.tmp:2)
at com.xxxx.r_in_scala.A$A1$A$A1.R(RInScalaTest.sc2318647708135405919.tmp:2)
at com.xxxx.r_in_scala.A$A1$A$A1.get$$instance$$R(RInScalaTest.sc2318647708135405919.tmp:2)
at #worksheet#.#worksheet#(RInScalaTest.sc2318647708135405919.tmp:10)

我已经深入研究了findROnWindows的代码,我的安装应该根据正在读取的注册表项的值找到。我敢肯定我错过了一些简单的东西,但是在那个“我一直在研究这个问题太长时间没有搞清楚,只需要一套新的眼睛”阶段。

1 个答案:

答案 0 :(得分:0)

据我所知,这是目前IntelliJ的工作表实现中的某种错误,或者实际上是错误的配置。核实: 将代码放在对象中

package starter
object Test extends App {
  import org.ddahl.jvmr.RInScala
  val R = RInScala()
  println("works")
}

并尝试将其作为scala应用程序运行,而不是从工作表中运行。