2012-04-25 90 views
2

我有用R编写的程序。我可以从R GUI运行它,并且吐出结果。你如何从Java运行R程序?

有没有办法从Java运行该程序?

+1

的Runtime.exec ??? – 2012-04-25 15:46:05

+0

RCaller在一个更复杂的方式@HotLicks – jbytecode 2016-04-14 09:36:30

回答

4

您可能想看看这三个项目。

+0

比较条目的页面和本文采用的Runtime.exec是: [1]:http://stdioe.blogspot.com/2013/08/a-user-document -for-rcaller.html [2]:http://sciencedomain.org/download/NDgzOEBAcGY – jbytecode 2016-04-14 09:34:14

0

我认为最简单的可能性之一,从其他一些环境中执行R代码里面是REST Web服务。

举例来说,如果你有一个R-调用的脚本example.R具有以下功能:

#* @get /hello 
hello <- function() { 
    print("hello") 
} 

您可以运行以下命令:

library(plumber) 
r <- plumb("example.R") 
r$run(port=8080) 

如果你再调用页面

http://localhost:8080/hello 

您的R代码将被执行。

如果你想从Java执行它的解决方案可能是:

URL url = new URL("http://localhost:8080/hello"); 
    URLConnection connection = url.openConnection(); 
    BufferedReader br = new BufferedReader(new InputStreamReader((connection.getInputStream()))); 
    String result = br.readLine();