新的REngine发布并立即停止

时间:2014-03-31 08:50:54

标签: java r rjava

我想用JRI从Java调用R。

我在eclipse下在主类中运行它:

   Rengine c = new Rengine(new String[] { "--vanilla" }, false, null);

首先我遇到了加载jri.dll的问题,我已经解决了设置此问题的问题

  -Djava.library.path=D:\Users\pmancaux\Desktop\Dev\R\GNU_R\R-3.0.2\library\rJava\jri\

我设置了eclipse的环境执行:

  PATH D:\Users\pmancaux\Desktop\Dev\R\GNU_R\R-3.0.2\library\rJava\jri\;D:\Users\pmancaux\Desktop\Dev\R\GNU_R\R-3.0.2\bin\;D:\Users\pmancaux\Desktop\Dev\R\GNU_R\R-3.0.2\bin\i386

  R_DOC_DIR D:\Users\pmancaux\Desktop\Dev\R\GNU_R\R-3.0.2\doc
  R_HOME D:\Users\pmancaux\Desktop\Dev\R\GNU_R\R-3.0.2\bin
  R_INCLUDE_DIR D:\Users\pmancaux\Desktop\Dev\R\GNU_R\R-3.0.2\include
  R_SHARE_DIR D:\Users\pmancaux\Desktop\Dev\R\GNU_R\R-3.0.2\share

但当我正在做“新的Rengine”时......它立即开始和停止 请参阅调试模式中的跟踪:

  <disconnected>fr.edf.CallRJRI at localhost:50728  
  <terminated, exit value: 2>D:\outils\java\jdk1.6.0_37\bin\javaw.exe (28 mars 2014 10:41:13)   

我做错了什么?

一些信息:

我在RGui.exe中有磁带库(“rJava”)

   Tapez 'q()' pour quitter R.

   > library("rJava") 
   > 

它似乎没有任何问题,并且在java中我在清单文件中有JRI.jar和JRIENgine.jar与Created-By:1.7.0_45(Oracle Corporation)。在我的主要方法中我有

               Rengine.DEBUG = 5;
    System.out.println("Starting Rengine..");
    System.out.println("R_HOME =" + System.getenv("R_HOME"));
    System.out.println("java.library.path =" + System.getProperty("java.library.path"));

    Rengine re = new Rengine(new String[] { "--vanilla" }, false, null);
    if (!re.waitForR()) {
        System.out.println("Cannot load R");
        return;
    } 

但程序停在新的Rengine行... 非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

我相信你没有激活R并键入它:

library("rJava"),首先尝试这个,如果这不起作用,那么请附上你的java代码,然后尝试寻找其他解决方案。