Java ProcessBuilder可以在Linux中顺序执行多个命令

前端之家收集整理的这篇文章主要介绍了Java ProcessBuilder可以在Linux中顺序执行多个命令前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想通过使用ProcessBuilder类的 Java应用程序顺序执行2个或更多命令.我尝试过多个选项,如其他响应/论坛中的建议,但没有运气.

这是我试过的事情:

ProcessBuilder processBuilder = new ProcessBuilder("ls",";","pwd");

给我以下错误

错误:ls:;:没有这样的文件或目录
错误:ls:pwd:没有这样的文件或目录

ProcessBuilder processBuilder = new ProcessBuilder("ls","&&","pwd");

给我类似的错误

错误:ls:&&:没有这样的文件或目录
错误:ls:pwd:没有这样的文件或目录

List<String> command = new ArrayList<String>();
    command.add("ls");
    command.add(";");
    command.add("pwd");
    ProcessBuilder processBuilder = new ProcessBuilder(command);

给我以下错误

错误:ls:;:没有这样的文件或目录
错误:ls:pwd:没有这样的文件或目录

我的操作系统是Linux / Mac OSX.

解决方法

您的方法相当于使用指定的参数调用ls.在Bash符号中,您正在运行的是:
ls ';' pwd
ls '&&' pwd

如果要使ls和pwd作为单独的命令运行,可以使用Bash(或另一种shell语言)将它们包装成一个命令:

bash -c 'ls ; pwd'

你可以这样称呼:

ProcessBuilder processBuilder = new ProcessBuilder("bash","-c","ls ; pwd");
原文链接:https://www.f2er.com/java/127227.html

猜你在找的Java相关文章