我是 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-Bit Server VM (25.45-b02 混合模式 windows-amd64 压缩 oops) 有问题框架:C [R.dll+0x26036]
无法写入核心转储。默认情况下,在 Windows 的客户端版本上不启用小型转储
包含更多信息的错误报告文件保存为: