通过Java从终端运行R.

时间:2011-04-29 15:10:42

标签: java r terminal

我正在尝试使用Java运行R.我已经在我的Mac上安装了R,并且我已经在终端上使用了很多次。

在终端中,要启动R,只需键入“R”

即可

例如:

 Macintosh-11:Desktop myname$ R

R version 2.12.2 (2011-02-25)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> 

所以,我想做的是通过终端运行R到Java。所以,我自己写了一个Java类:

public class javar {

        public static void main(String[] args) throws Exception {
                Runtime.getRuntime().exec("R");
        }
}

然而,当我编译然后执行时,使用

java javar

我没有看到R开始。我只是看到程序完成执行,然后终端准备好了另一个命令。

我如何实现我的目标?

1 个答案:

答案 0 :(得分:3)

当我遇到你的问题时,我最终使用了JRI,它不仅创建了一个R / Java连接,还允许你与两者交换矩阵和向量。

虽然我没有建议,但是你的方法可能有用,但是在启动它之后R不会“挂起”,它只会执行任何操作并退出。尝试添加“--vanilla”选项并显然为其提供一些代码,使用--file = yourScript.R并使用--args最终参数

public class javar {

        public static void main(String[] args) throws Exception {
                Runtime.getRuntime().exec("R --vanilla --file=yourScript.R");
        }
}