我需要使用 JRI 构建一个与 R 控制台类似的应用程序。问题是有时控制台会响应显示一行(例如,在x
下面输入之后),有时它不会(例如,在输入之后x = 1
)
我试图分析eng.parseAndEval(statement)
(其中语句是在控制台上输入的命令),但不知道何时在控制台上显示响应,何时不显示。有任何想法吗?
您所看到的是 R 维护的可见性标志,它告诉常规事件循环何时打印,何时不打印。有关详细信息,请参见withVisible
R。但是,您真的不想重新实现 R 事件循环。相反,JRI 允许您让 R 为您完成所有工作 - 您只需实现控制台回调RMainLoopCallbacks
来处理所有控制台 I/O,然后启动事件循环。你可能想看看JGR——它是一个使用 JRI 实现的 Java 控制台。