2014-03-31 115 views
3

我想使用JRI从Java调用R。新的REngine启动并立即停止

我在日食m设置为在主类运行此:

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” ......这公司的S挞和停止立刻 看到在调试模式跟踪:

<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) 

我做什么事情了?

一些信息:

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

Tapez 'q()' pour quitter R. 

    > library("rJava") 
    > 

它似乎没有任何问题,而且在Java中我有JRI.jar和JIRENgine.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程序停止...... 非常感谢您的帮助

回答

0

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

library("rJava"),请尝试这一开始,如果这不起作用,那么请附上您的java代码,并试图找到其他解决方案。

+0

感谢您的回答,我不明白你的答案。要做图书馆(“rJava”),我之前需要REngine实例来做Rengine.eval(“library('rJava')”),但问题是在我能做评估之前立即停止重新引导。也许我错过了一些东西,或者我不明白你的答案。我的java代码只是一个主要的行,我后和re.eval(“源(myfile.R)”);但程序员不会去第二行。我有激活调试,我有一个从REngine调试:启动R ...然后没有,它停止。 –

+0

不,在R中激活'library(“rJava”)'命令,而不是在Java中,如果这不起作用,请添加您的java代码的导入,并尝试看看有什么不同。 –

+0

我编辑我的帖子给你添加一些信息 –