我有一个主java程序,它将从另一个类运行一个函数。我在R中有脚本,它与我的Java项目中的函数类相连。我将从我的代码中给出一个简单的例子。
App.java
public static void main(String[] args) {
String input = "Hello world.";
ResultSequence sequence = new ResultSequence();
sequence.runResultSeq(input);
}
ResultSequence.java
public class ResultSequence {
String x;
private Rengine r;
public void runResultSeq(String x) {
Rengine re = new Rengine(new String[]{"--no-save"}, false, null);
System.out.println(re.eval("x =" + x));
File rScript = new File("src/application/rscript/check.R");
System.out.println(rScript);
System.out.println(re.eval("source(\""+rScript.toURI().getPath().substring(1)+"\")"));
System.out.println(re.eval("abc <- abc(x)"));
System.out.println(r.eval("abc"));
re.end();
}
}
check.R
abc <- function(x) {
library(stringi)
library(stringr)
y = substring(x,4)
y
}
我在Java中运行我的主代码,但是有一个错误,好像代码没有读取R脚本。我使用rJava,我是R Java Integration的初学者。请帮助我解决问题,因为我不知道应该修复我的代码中哪一个。我很抱歉我的愚蠢问题,但我已经搜索了许多来源并对其进行了实践,但它并没有改变我的错误结果。谢谢你的回答。