有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用R编写脚本扩展我的Java应用程序?

我正在构建一个应用程序,我想用模块来扩展它,它可以进行一些nr运算,我想用R来实现这一点。使用R扩展Java应用程序的最佳选项是什么


共 (2) 个答案

  1. # 2 楼答案

    使用REngine API对Java中的R进行了标准化。基本上有两种实现

    第一个实现是JRI。它基于JNI,并在JVM内执行R dll。这意味着连接非常快。您可以使用完整的R功能,包括位于R中但在Java中可以访问/修改的对象。缺点是不能使用多线程

    第二个实现是RServe。RServe由一个用C编写的服务器和一个Java客户端组成。服务器从命令行启动,并包含R dll。然后,java客户端进行套接字连接,并以串行方式调用R。这个实现运行良好。缺点是,在Windows上,RServe组件无法自行分叉来处理多个连接。每个RServe实例只能为一个用户提供服务器

    另一种需要注意的实现是Java RMI客户端,它使用JRI调用Java服务器调用R。其思想是,您可以使用多线程,因为您可以同时与多个服务器进行通信。见http://www.londonr.org/remoterengine-londonR.pdf

    在实践中,我们将RServe与许多样板代码一起用于启动和管理RServe实例。这基本上是一个主要的PITA,但它工作得很好,性能也很好