异常尝试使用Renjin在java中执行R脚本时

时间:2015-01-16 15:11:47

标签: java r renjin

我创建了一个R脚本" script.R"

df <- data.frame(x=1:10, y=(1:10)+rnorm(n=10))
print(df)
print(lm(y ~ x, df))

试图在Java中使用renjin调用

engine.eval(new FileReader("src/javaSrc/script.R"));

得到以下例外:

Exception in thread "main" java.lang.NoSuchMethodError:
org.renjin.parser.RParser.parseSource(Lcom/google/common/io/CharSource;)Lorg/renjin/sexp/ExpressionVector;
    at
org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:125)
    at
org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:109)
    at javaSrc.TryRenjin.main(TryRenjin.java:27)

1 个答案:

答案 0 :(得分:0)

您的类路径上看起来有两个不同版本的Renjin:Renjin最近迁移到使用Guava 17.0,并且对InputSupplier的所有引用都更改为CharSource。

使用最新版本:

<dependency>
    <groupId>org.renjin</groupId>
    <artifactId>renjin-script-engine</artifactId>
    <version>0.7.0-RC7</version>
</dependency>

或最新快照

  <dependency>
    <groupId>org.renjin</groupId>
    <artifactId>renjin-script-engine</artifactId>
    <version>0.7.0-RC8-SNAPSHOT</version>
  </dependency>

但混合和匹配不同版本的罐子(比如renjin-core-0.7.0-RC7.jar和renjin-script-engine-0.7.0-RC8-SNAPSHOT.jar)会导致你看到的那种错误上方。