【发布时间】:2017-05-30 04:00:11
【问题描述】:
我正在使用 Rserve 从 java 调用 r 脚本。程序运行并终止,但不输出我想要的。在我的 R 脚本中,我有多个打印语句,所以理论上当我的 java 程序运行时它应该打印这些语句。但是我的 java 程序正在打印我的 rscript 的路径,而不是实际的 r 脚本内容。
我应该怎么做?我怎么知道我的脚本是否正确运行?
R 脚本:
library(Rserve)
Rserve()
print(323325)
print("Hellow world this is an R script")
print("R script ran successfully")
print("Running")
Java 程序:
public static void main(String[] args) throws REXPMismatchException, REngineException{
RConnection c = new RConnection();
//REXP rengine = c.eval("R.version.string");
//rengine = c.eval("source('./src/main/resources/Script/DB.R')");
//System.out.println(rengine.asString());
REXP rResponseObject = c.parseAndEval("try(eval('./src/main/resources/Script/DB.R'),silent=TRUE)");
System.out.println(rResponseObject.asString());
if (rResponseObject.inherits("try-error")) {
System.err.println("Error: " + rResponseObject.asString());
}
}
实际输出:
./src/main/resources/Script/DB.R
期望的输出:
[1] "Hellow world 这是一个 R 脚本" [1] “R 脚本运行成功” [1] 《奔跑》
【问题讨论】: