从java执行多个命令shell

时间:2012-07-12 12:21:55

标签: java

我一直在寻找一种从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();  
    }  
无论如何

是否使用上面的代码在同一会话中执行许多命令?

4 个答案:

答案 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);