无法获得R语言system2命令结果

时间:2016-06-16 13:24:14

标签: java r system2

我无法获得system2结果。试图执行样本jar文件。

execute_system.R:

workingDir <- "C:/Code"
setwd(workingDir)
command <- "java -jar sample.jar 674"
commandResult <- system2(command, stdout="C:/Code/stdout.txt", stderr="C:/Code/stderr.txt")
cat("commandResult: ", commandResult)

当我执行 execute_system.R 文件并生成空文件时,我收到错误消息(stdout.txt,stderr.txt)

commandResult: 127
warning message: running command '"java -jar sample.jar 674"' had status 127

我想读取system2命令结果,需要处理结果数据。

当我执行相同的命令提示符时,我得到了正确的结果

C:/Code>java -jar sample.jar 123
convert from String to int...
Input: 123
Value: 123
Conversion process done!!!

实际我的Java代码

public class Conversion{
   public static void main(String args[]){
      System.out.println("convert from String to int...");
      String input = args[0];
      System.out.println("Input: " + input );
      int value = Integer.valueOf(input)
      System.out.println("Value: " + value);
      System.out.println("Conversion process done!!!);
   }
}

我将这个java程序转换为可执行的jar文件(sample.jar)。

请帮帮我。 提前谢谢。

1 个答案:

答案 0 :(得分:10)

使用您的代码,当我执行以下操作时,它对我没有任何错误:

system2('java', args = c('-jar', 'sample.jar', '123'),
         stdout = 'stdout.txt', stderr = 'stderr.txt')

我是在Mac OSX 10.10.5(优胜美地)上运行的。结果打印到“stdout.txt”。

system2的文档看来,第一个选项只是一个命令(即没有参数)。参数将使用args参数指定。

以下是详细信息部分的摘录:

  

<强>详情

     

与system不同,命令总是由shQuote引用,因此它必须是没有参数的单个命令。

     

...