【问题标题】:Running R from terminal via Java通过 Java 从终端运行 R
【发布时间】:2011-04-29 15:10:41
【问题描述】:

我正在尝试使用 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.

> 

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

public class javar {

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

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

java javar

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

我怎样才能实现我想要做的事情?

【问题讨论】:

标签: java r terminal


【解决方案1】:

当我遇到您的问题时,我最终使用了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");
        }
}

【讨论】:

    猜你喜欢
    • 2015-06-23
    • 2012-03-03
    • 2017-11-04
    • 2018-02-04
    • 1970-01-01
    • 2012-12-25
    • 2011-07-11
    • 2014-02-02
    • 1970-01-01
    相关资源
    最近更新 更多