3

我正在寻找一种从 java 执行几个命令 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

4 回答 4

0

您可以轻松地在for-loop.

于 2012-07-12T12:23:27.810 回答
0

也许您可以将命令分组到一个 shell 脚本中,然后执行。

于 2012-07-12T12:27:05.810 回答
0

您可以使用一堆命令编写可执行的 shell 脚本或 bat 文件,并将其作为一个命令执行。

于 2012-07-12T12:28:08.180 回答
0

首先,这不是您使用的方式Runtime.exec():第一个参数是可执行文件,其他参数是该可执行文件的参数。

现在,您的代码正在尝试执行一个名为 literal 的文件"ls -la",该文件当然不存在。

将您的代码更改为:

String[] command = {"ls", "-la"}; // Use an array
Runtime.getRuntime().exec(command);  
于 2012-07-12T12:30:06.777 回答