使用JRI模拟R控制台

Using JRI to simulate R console

我需要使用 JRI 构建一个类似于 R 控制台的应用程序。问题是有时控​​制台会响应显示一行(例如,在下面输入 x 之后),有时它不会(例如,在输入 x = 1 之后)

我试图分析 eng.parseAndEval(statement)(其中语句是在控制台上输入的命令)但不知道何时在控制台上显示响应,何时不显示。有什么想法吗?

您看到的是由 R 维护的可见性标志,它告诉常规事件循环何时打印,何时不打印。有关详细信息,请参阅 R 中的 withVisible。但是,您真的不想重新实现 R 事件循环。相反,JRI 允许您让 R 为您完成所有工作 - 您只需实施控制台回调 RMainLoopCallbacks 来处理所有控制台 I/O,然后启动事件循环。您可能想看看 JGR - 它是一个使用 JRI 实现的 Java 控制台。