java - 使用 ProcessBuilder 运行 shell 脚本

标签 java linux process builder

我正在尝试使用 Java 和 ProcessBuilder 运行脚本。当我尝试运行时,收到以下消息:error=2,没有那个文件或目录。

我不知道我做错了什么,但这是我的代码(ps:我试图只执行不带参数的脚本,但错误是一样的:

String[] command = {"/teste/teste_back/script.sh, "+argument1+", "+argument+""};
ProcessBuilder p = new ProcessBuilder(command);

    try {  

        // create a process builder to send a command and a argument
        Process p2 = p.start(); 
        BufferedReader br = new BufferedReader(new InputStreamReader(p2.getInputStream()));
        String line;

        log.info("Output of running " + command + " is: ");
        System.out.println("Output of running " + command + " is: ");
        while ((line = br.readLine()) != null) {
            log.info(line);
        }

    }  

最佳答案

尝试替换

String[] command = {"/teste/teste_back/script.sh, "+argument1+", "+argument+""};

String[] command = {"/teste/teste_back/script.sh", argument1, argument};

引用ProcessBuilder获取更多信息。

ProcessBuilder(String... command)

Constructs a process builder with the specified operating system program and arguments.

关于java - 使用 ProcessBuilder 运行 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45570827/

相关文章:

java - java.lang.OutOfMemoryError : Java heap space , Java Swing 应用程序的工具

linux - 如果 `pwd -P` 包含包含空格的文件夹名称,bash 脚本将失败

java - Maven 连接问题

process - 如何从 Erlang 中生成的进程获取返回值?

php - 如何找出特定进程仍在PHP中运行

java - 新安装的 Ubuntu 16.04 LTS 服务器和升级的服务器之间的编码问题

java - 创建一个参数为数组的泛型类

JAVA服务提供者SAML2请求-禁用数字签名

java - Jboss 6.4 加密密码不起作用

node.js 子进程更改目录并运行该进程