2014-03-31 171 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

我編輯我的帖子給你添加一些信息 –