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