【发布时间】:2015-08-14 18:58:51
【问题描述】:
我是 R 新手,正在尝试从 java 调用一个简单的 rJava 测试程序。我已经完成了必要的路径设置以及何时 我正在尝试创建一个代码失败的 Rengine 实例。问题似乎出在 C [R.dll+0x26036] 上。但是,我对此并不陌生,无法弄清楚这个问题。欢迎任何帮助。
我的代码:
import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;
public class First_R {
public static void main (String args []) {
System.out.println("Start");
Rengine.DEBUG = 5;
System.out.println("Starting Rengine..");
System.out.println("R_HOME =" + System.getenv("R_HOME"));
final Rengine re = new Rengine ();
// Check if the session is working.
if (!re.waitForR()) {
return;
}
re.assign("x", new double[] {1.5, 2.5, 3.5});
REXP result = re.eval("(sum(x))");
System.out.println(result.asDouble());
re.end();
}
}
输出:
开始 启动 Rengine.. R_HOME =D:\Program Files\R\R-3.2.0\bin\
Java 运行时环境检测到致命错误:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) 在 pc=0x000000006c726036, pid=4588, tid=1872
JRE 版本:Java(TM) SE 运行时环境 (8.0_45-b14) (build 1.8.0_45-b14) Java VM:Java HotSpot(TM) 64 位服务器 VM(25.45-b02 混合模式 windows-amd64 压缩 oops) 有问题的框架: C [R.dll+0x26036]
无法写入核心转储。默认情况下,在 Windows 的客户端版本上不启用小型转储
包含更多信息的错误报告文件保存为:
【问题讨论】:
-
您是否设置了虚拟机选项?您需要设置 VM 选项,例如在 netbeans 中,我为 JRI -Djava.library.path='C:\Program Files\R\R-2.15.3\library\rJava\jri\x64' 插入了以下选项
-
你的问题突然结束了:“带有更多信息的错误报告文件保存为:” ...?
-
@YehoshapatSchellekens,我在我的代码中添加了
System.setProperty("JRI", "-Djava.library.path='D:/Misc/RLib/rJava/jri/x64'");。它仍然返回相同的错误。此外,由于我已将 rJava 安装到我的 exclipse 中,因此我已在我的首选项中设置了 dll 和 JRI 的路径。
标签: java r exception rjava jri