无法在linux环境中从java启动Rserve

时间:2016-04-11 23:44:05

标签: java linux exec rserve

这个小代码尝试从JAVA启动Rserve:

import java.io.*;
import java.util.*;
class Test{
        public static void main(String[] args) throws IOException, InterruptedException{
                boolean debug = false;
                Process p = Runtime.getRuntime().exec("R CMD Rserve");
                p.waitFor();
        }
}

这会在Windows上成功启动Rserve进程。但是在linux环境中,即使没有抛出异常,也无法启动Rserve。

我可以使用命令R CMD Rserve从linux中的命令行启动Rserve。因此,R和Rserve的安装不是问题。

如何在Linux环境下从JAVA启动Rserve?

2 个答案:

答案 0 :(得分:0)

在Linux环境中,shell处理您发出的命令。因此,Java需要调用shell可执行文件并告诉它执行R命令及其参数。尝试将"R CMD Rserve"更改为以下内容(将/bin/bash替换为首选Linux shell的路径):

"/bin/bash -c 'R CMD Rserve'"

如果这不起作用,请尝试在单引号中指定R可执行文件的完整路径。

答案 1 :(得分:0)

尝试使用:

Process p = Runtime.getRuntime().exec("R CMD Rserve --vanilla");

用于linux环境。