java - 在java中运行系统命令

标签 java command-line terminal

我有点困惑为什么我无法运行以下命令ls -l 如果我运行 lspwd 它工作正常。

我错过了什么吗?

    ProcessBuilder pb = new ProcessBuilder("ls -l");
    pb.redirectErrorStream(true);
    Process process = pb.start();

    InputStream is = process.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);

    String line;
    while ( (line = br.readLine()) != null) {
        System.out.println(line);
    }
    br.close();

还有一个问题:如何同时运行多个系统命令?使用while循环或for循环将一条一条地运行命令。有什么建议吗?

提前致谢。

最佳答案

更改:

new ProcessBuilder("ls -l");

致:

new ProcessBuilder("ls", "-l");

关于java - 在java中运行系统命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40076809/

相关文章:

linux - 如何在ubuntu终端中获取一天中的星期几

c# - 无法在 C#.net 的 FFMPEG 中为 '&&' 找到合适的输出格式

tomcat - 在 Mac OS X Lion 上安装 Tomcat 7.0.22

java - 可以用java编写nginx模块吗?

java - 自定义 Eclipse 内容辅助的键绑定(bind)

Java 使用更改的变量重复检查 x 次

java - 将单独类的方法调用到另一个类中

python - 我应该如何在 Python 中实现 "nested"子命令?

linux - 如何在 Fedora 中通过终端查找特定文件夹

bash - xfce-terminal 随机位置的新窗口加上回显该值