Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 新引擎启动并立即停止_Java_R_Rjava - Fatal编程技术网

Java 新引擎启动并立即停止

Java 新引擎启动并立即停止,java,r,rjava,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的环境执行中设

我想使用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
但是当我在做“新翻版”的时候。。。它是立即开始和停止的 请参见调试模式下的跟踪:

  <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)   
它似乎没有任何问题,在java中,我在清单文件中创建了JRI.jar和JRIENgine.jar,创建人:1.7.0_45(Oracle公司)。我的主要方法是

               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;
    } 
但是程序停在新的引擎上。。。
非常感谢您的帮助

我相信您没有激活R并在其中键入:


library(“rJava”)
,先试试这个,如果不行,请附上您的java代码,我会尝试找到其他解决方案。

谢谢您的回答,我不理解您的答案。要执行library(“rJava”),我需要在执行REngine.eval(“library('rJava'))之前使用REngine实例,但问题是,在我可以执行评估之前,REngine会立即停止。也许我错过了什么,或者我不明白你的答案。我的java代码只有一行main,在re.eval之后(“source(myfile.R)”;但是程序永远不会进入第二行。我已经激活调试,我已经从REngine调试:启动R。。。然后什么都没有,它停止了。不,在R中激活
库(“rJava”)
命令,而不是在Java中,如果这不起作用,请添加Java代码的导入,我会尝试看看有什么错误。我知道rJava在R版本变为3时出现了一些问题,尝试使用R 2.15,让我知道helpedi是否可以测试这个,但问题是版本不是由我修复的,是客户选择的,因为R脚本已经编写并通过RScript.exe,他们希望使用相同的版本…查看我在新问题中的答案,让我知道这是否有帮助
               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;
    }