我无法获得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)。
请帮帮我。 提前谢谢。
答案 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引用,因此它必须是没有参数的单个命令。
...