我有以下Java代码
ArrayList<String> argList = new ArrayList<>();
argList.add("Hello");
argList.add("World");
String[] args = argList.toArray(new String[argList.size()]);
Process p =Runtime.getRuntime().exec("echo '$1 $2' ", args);
结果是
$1 $2
,但我想打印Hello World
。有人能帮我吗?
最佳答案
创建一个shell以使用参数扩展:
ArrayList<String> command = new ArrayList<>();
command.add("bash");
command.add("-c");
command.add("echo \"$0\" \"$1\"");
command.addAll(argList);
Process p = Runtime.getRuntime().exec(command.toArray(new String[1]));
输出:
Hello World
关于java - 从Java运行Linux脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18545921/