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