首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在net上运行简单的‘`Renjin`’示例,使用Java代码:“在Java项目中使用R”

在net上运行简单的‘`Renjin`’示例,使用Java代码:“在Java项目中使用R”
EN

Stack Overflow用户
提问于 2014-05-11 12:50:22
回答 1查看 1.8K关注 0票数 2

我试着运行这个例子从Renjin网站,http://www.renjin.org/documentation/developer-guide.html,Im运行第一个“简单入门”的例子。

以下是我的目录布局:

这是我的密码:

代码语言:javascript
复制
package stackoverflow;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import org.renjin.sexp.*; // <-- import Renjin's object classes
/**
 *
 * @author yschellekens
 */
public class StackOverflow {  

   public static void main(String[] args) throws Exception {
   ScriptEngineManager factory = new ScriptEngineManager();
    // create a Renjin engine
    ScriptEngine engine = factory.getEngineByName("Renjin");
    // evaluate R code from String, cast SEXP to a DoubleVector and store in the 'res' variable
    DoubleVector res = (DoubleVector)engine.eval("a <- 2; b <- 3; a*b");
    System.out.println("The result of a*b is: " + res);     

    }
}

为什么我会得到下面的例外?(我应该得到6)

代码语言:javascript
复制
run:
Exception in thread "main" java.lang.NullPointerException
    at stackoverflow.StackOverflow.main(StackOverflow.java:22)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-21 12:18:58

例外情况是抛出,因为应用程序找不到Renjin ScriptEngine。您已经将renjin作为一个库提供了,但是您需要从http://build.bedatadriven.com/job/renjin/lastSuccessfulBuild/org.renjin$renjin-script-engine/ (使用带有依赖项的JAR )中获得的renjin脚本引擎库。

不幸的是,ScriptEngineManager.getEngineByName()只在找不到引擎时才返回null,因此您可以添加以下检查以确保引擎已加载:

代码语言:javascript
复制
// check if the engine has loaded correctly:
if(engine == null) {
    throw new RuntimeException("Renjin Script Engine not found on the classpath.");
}

也要注意:它叫仁进,不是仁进!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23592839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档