我正在尝试运行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());
   }
}


请注意,您有几个错误,包括不包括主类,以及未创建正确的构造函数。

07-25 22:10