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