在NetBeans上运行简单的'Renjin'示例,Java代码为;在Java项目中使用R“;
我试着从人人网运行这个示例,我试着运行第一个“简单入门”示例 以下是我的目录布局: 这是我的代码:在NetBeans上运行简单的'Renjin'示例,Java代码为;在Java项目中使用R“;,java,r,jri,renjin,Java,R,Jri,Renjin,我试着从人人网运行这个示例,我试着运行第一个“简单入门”示例 以下是我的目录布局: 这是我的代码: package stackoverflow; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import org.renjin.sexp.*; // <-- import Renjin's object classes /** * * @author yschellekens *
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);
}
}
提前感谢由于应用程序找不到Renjin ScriptEngine,因此会引发异常。您已经提供了renjin studio作为一个库,但是您需要renjin脚本引擎库,该库可以从中获得(使用具有依赖项的JAR) 不幸的是
ScriptEngineManager.getEngineByName()
仅在找不到引擎时返回null
,因此您可以添加以下检查以确保引擎已加载:
// check if the engine has loaded correctly:
if(engine == null) {
throw new RuntimeException("Renjin Script Engine not found on the classpath.");
}
还请注意:它叫人精,不是人精 对不起,我犯了伦金的错误,我会在星期一查一下密码,然后告诉你。顺便说一句,这个项目真的很酷,
JRI
替代方案很糟糕。它在那里工作:run:a*b的结果是:6.0构建成功(总时间:1秒)我必须说我注意到你和你的合作伙伴都不太喜欢堆栈溢出,注意到所有的r大师都使用这个网站来推广他们的包,我认为这对你的产品也有好处。很高兴它现在可以工作了,而且你对这个项目很兴奋!关于我们在SO上的存在:这里没有那么多的问题与仁进有关。我们有一个非常活跃的团队。当有人发布消息时,我们会收到一封电子邮件通知,因此更容易跟踪那里的问题。我想我会处理这些问题:)
// check if the engine has loaded correctly:
if(engine == null) {
throw new RuntimeException("Renjin Script Engine not found on the classpath.");
}