java Runtime.exec以运行Shell脚本

我正在使用Runtime.getRuntime()。exec()从Java代码运行Shell脚本。当我将参数作为字符串传递时,代码工作正常

      Runtime.getRuntime().exec("sh test.sh")

由于必须传递带有空格的路径的其他参数,因此我将String替换为String数组。

      String[] cmd = {"sh test.sh", "/Path/to my/resource file"};

Runtime.getRuntime().exec(cmd)

我也尝试过

      String[] cmd = {"sh test.sh"};

Runtime.getRuntime().exec(cmd)

但是他们两个都不起作用。它的抛出异常

   java.io.IOException: Cannot run program "sh test.sh":

java.io.IOException: error=2, No such file or directory

当以String形式传递时和与String数组一起使用时,为什么相同的脚本文件会引发异常。有没有人遇到过这个问题。请帮我解决这个问题,以字符串数组作为Runtime.exec()的参数。提前致谢。

回答:

第一个字符串成为命令。没有要执行的文件“ sh test.sh”。

更改

 String[] cmd = {"sh test.sh", "/Path/to my/resource file"};

String[] cmd = {"sh",  "test.sh", "/Path/to my/resource file"};

(一般使用流程构建器API)

以上是 java Runtime.exec以运行Shell脚本 的全部内容, 来源链接: utcz.com/qa/428550.html

回到顶部