【问题标题】:new REngine launch and stop immediately新的 REngine 启动并立即停止
【发布时间】:2014-03-31 08:50:54
【问题描述】:

我想使用 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 行停止... 非常感谢您的帮助

【问题讨论】:

    标签: java r rjava


    【解决方案1】:

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

    library("rJava"),先试试这个,如果不行,请附上你的java代码,我想找其他解决办法。

    【讨论】:

    • 感谢您的回答,我不明白您的回答。要执行库(“rJava”),我需要 REngine 实例才能执行 Rengine.eval(“库('rJava')”),但问题是 rengine 在我可以进行评估之前立即停止。也许我错过了什么,或者我不明白你的答案。我的 java 代码只是 à main 与我发布的那一行,就在 re.eval("source(myfile.R)"); 之后。但程序永远不会进入第二行。我已经激活调试并且我从 REngine 进行了调试:正在启动 R... 然后什么也没有,它停止了。
    • 不,在 R 中激活 library("rJava") 命令,而不是在 Java 中,如果这不起作用,请添加你的 java 代码的导入,我会尝试看看有什么遗漏。
    • 我知道当 R 版本变成 3 时 rJava 存在一些问题,尝试使用 R 2.15 并告诉我是否有帮助
    • 我可以测试这个,但问题是我没有修复版本,是客户选择它,因为 R 脚本已经编写并通过 RScript.exe 传递,他们想使用相同的版本...
    • 看看我在你的新问题中的回答,如果有帮助请告诉我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    相关资源
    最近更新 更多