Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JRI:从R引擎获取错误消息_Java_R_Rjava_Jri - Fatal编程技术网

Java JRI:从R引擎获取错误消息

Java JRI:从R引擎获取错误消息,java,r,rjava,jri,Java,R,Rjava,Jri,我正在使用R引擎执行大量计算。正如web上的各种教程所指出的,我使用的是的,例如: engine.eval(“meanVal=mean(rVector)” 在某个时刻,eval方法开始返回NULL,根据文档,这意味着“出了问题”。但是,我无法在Rengineclass a属性或方法中确定提供错误消息、错误状态或R控制台输出以确定原因的方法。有什么方法可以获得关于可能发生的事情的详细信息吗?实际上,在嵌入错误信息时,从R获取错误信息非常困难。但是,它在R级别提供了更多信息。因此,最简单的方法是用

我正在使用R引擎执行大量计算。正如web上的各种教程所指出的,我使用的是的,例如:

engine.eval(“meanVal=mean(rVector)”


在某个时刻,
eval
方法开始返回
NULL
,根据文档,这意味着“出了问题”。但是,我无法在
Rengine
class a属性或方法中确定提供错误消息、错误状态或R控制台输出以确定原因的方法。有什么方法可以获得关于可能发生的事情的详细信息吗?

实际上,在嵌入错误信息时,从R获取错误信息非常困难。但是,它在R级别提供了更多信息。因此,最简单的方法是用

try(..., silent=TRUE)


这样,您就可以通过定期评估将错误返回Java。如果您想真正喜欢,可以使用
Rserve::Rserve.eval()
,它也可以返回错误的堆栈跟踪,但需要最新版本的
Rserve
包,该包不是Java代码,但在任何情况下,
engine.eval()
方法都不会发出异常。正如我在问题中所写的那样,问题的唯一线索是这个方法返回
NULL
。确切地说,这就是为什么我指出您希望在R端捕获它-见上文-因为您不能在Java端捕获它,因为除非您提出要求,否则R不会给出它。现在我知道它必须是传递给
engine.eval()的代码
待包装;您可能希望编辑您的答案以使其更清楚。在任何情况下,这样我得到的是
[NULL]
,而不是
NULL
tryCatch(..., error=function(e) e)