4

我正在尝试将一个双精度数组传递给 R,对其值求和,然后将其返回给 Java。这是我在 Java 中尝试做的事情:

import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;

// Start R session.
Rengine re = new Rengine (new String [] {"--vanilla"}, false, null);

// 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();

但是,我收到错误:无法解析导入 org.rosuda.JRI.REXP 无法解析导入 org.rosuda.JRI.Rengine 无法解析 Rengine 无法解析为类型

即使对于我所做的进口,情况也是如此:

import java.lang.Object.org.rosuda.JRI.REXP;
import java.lang.Object.org.rosuda.JRI.Rengine;

有什么建议吗?谢谢!!

4

2 回答 2

0

你的进口应该是:

import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;

附加java.lang.Object在他们面前会产生垃圾。要解决编译错误,请确保在构建类路径中包含(正确版本的)JRI-x-.xx.jar。例如。

javac -cp ".:/some/path/to/JRI-0.8-4.jar" *.java

如果您使用的是 IDE,则将 JAR 包含在项目构建路径中。例如,使用 Eclipse,您可以通过右键单击项目将 JAR 添加到(常规项目),然后导航到 Properties->Java Build Path->Add External JARs,找到并选择 JAR,然后单击 OK所有对话框。然后您的导入应该干净地解决:

在构建路径上带有 JRI 库的 Eclipse 项目

请注意,JRI-0.8-4.jar 显示在 Referenced Libraries 下,用于项目

于 2013-04-15T22:01:55.180 回答
0

正如我在您之前的问题中所说,我强烈建议您(或将来访问此线程的任何人)使用此插件在 Eclipse 中设置 JRI。它为你做一切。我链接的页面将引导您完成整个过程。

于 2013-04-16T08:29:16.227 回答