我一直在寻找一种从java执行几个commans shell的方式。我在stackoverflow中发现了这一点,但它只对每个会话执行一个命令shell有帮助:
try {
// Execute command
String command = "ls -la";
StringBuffer ret=new StringBuffer();
Process p = Runtime.getRuntime().exec(command);
// Get the input stream and read from it
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
ret.append((char)c);
}
in.close();
System.out.println(ret.toString());
} catch (IOException e) {
e.printStackTrace();
}
无论如何是否使用上面的代码在同一会话中执行许多命令?
答案 0 :(得分:0)
您可以在for-loop
。
答案 1 :(得分:0)
也许您可以将命令分组到shell脚本中,并执行该命令。
答案 2 :(得分:0)
您可以使用一堆命令编写可执行shell脚本或bat文件,并将其作为一个命令执行。
答案 3 :(得分:0)
首先,这不是您使用Runtime.exec()
的方式:第一个参数是可执行文件,其他参数是该可执行文件的参数。
现在,您的代码正在尝试执行名为字面"ls -la"
的文件,这当然不存在。
将您的代码更改为:
String[] command = {"ls", "-la"}; // Use an array
Runtime.getRuntime().exec(command);