首先将执行的source语句如下
source(‘D:/xxx/xxx/xxx/py/test.R’) ,如果有函数,则继续执行如下
myFunc(1,2) //myFunc是R脚本中的方法名,其中参数即形参
在Rstdio中的console中执行一遍,看看是否报错,不报错了以后,在Java中执行
RConnection connection = Rservel.getRConnection();
try {
String num1="one";
String num2="abc";
String rCode = "source('D:/IDEAWorkspace/selection.R')"; //这里改为自定义的需要运行的R脚本路径
System.out.println("Rscript call on file: "+rCode);
REXP r = connection.parseAndEval("try(eval(parse(text=myAdd('"+num1+"','"+num2+"'))),silent=TRUE)");//这里的参数前边的单引号务必加上,不然会报错eval failed Syntax error
System.out.println("\n--------- with try error ------------");//下边代码是为了写出在Java执行R脚本时,R脚本出现什么错误
if (r.inherits("try-error"))
System.out.println("Error: "+r.asString());
else
System.out.println("Executed R code successfully."+"r object: "+r.asString());
System.out.println("\n--------- without try error ------------");
System.out.println("R output :"+connection.eval("main()").asString());