我有以下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/

10-12 20:26