我想用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行... 非常感谢你的帮助
答案 0 :(得分:0)
我相信你没有激活R并键入它:
library("rJava")
,首先尝试这个,如果这不起作用,那么请附上你的java代码,然后尝试寻找其他解决方案。