我正在尝试运行JRI的示例,但未成功,这是该示例的链接。
http://blog.comsysto.com/2013/07/10/java-r-integration-with-jri-for-on-demand-predictions/
import org.rosuda.JRI.Rengine;
import org.rosuda.JRI.REXP;
public class HelloRWorld {
Rengine rengine; // initialized in constructor or autowired
public void helloRWorld() {
rengine.eval(String.format("greeting <- '%s'", "Hello R World"));
REXP result = rengine.eval("greeting");
System.out.println("Greeting from R: "+result.asString());
}
}
这是控制台给我的错误。
Exception in thread "main" java.lang.NullPointerException
at org.roulette.games.HelloRWorld.helloRWorld(HelloRWorld.java:10)
at org.roulette.games.HelloRWorld.main(HelloRWorld.java:17)
据我所知,我已将外部JRI 2014-10-19 jar正确连接到项目。
我已经安装了R 3.1.2,并且已经安装了rJava 0.9-6软件包。
第10行是“ rengine.eval(String.format(“ greeting
第17行是“ hello.helloRWorld();”。
请让我知道您是否知道为什么会引发这些异常。...:)
最佳答案
试试这个:是可行的:
package stackoverflow;
import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;
/**
*
* @author yschellekens
*/
public class StackOverflow {
public static void main(String[] args) throws Exception {
String[] Rargs = {"--vanilla"};
Rengine rengine = new Rengine( Rargs, false, null);
rengine.eval("greeting <- '%Hello R World'");
REXP result = rengine.eval("greeting");
System.out.println("Greeting from R: "+result.asString());
}
}
请注意,您有几个错误,包括不包括主类,以及未创建正确的构造函数。