我正在尝试通过以下方式为Java程序执行bash脚本文件:
Runtime.getRuntime().exec("./path/to/bash");
但这似乎不是正确的方法,因为它返回以下异常:
java.io.IOException: Cannot run program "./path/to/bash": error=2, No such file or directory
正确的方法是什么?
答案 0 :(得分:2)
java.io.IOException: Cannot run program "./path/to/bash": error=2, No such file or direct
这意味着文件路径错误。 请再次检查文件路径。 哪个文件夹包含此文件?
答案 1 :(得分:1)
要使用Java执行任何bash命令,您可以使用Runtime.getRuntime().exec("/path-to/bash -c \"rm *.foo\"")
之类的命令-这将删除当前工作目录中所有扩展名为.foo
的文件
答案 2 :(得分:1)
最近,我使用以下方法执行bash脚本。
Process exec = getRuntime().exec("/home/user/test/test.sh");
java.util.Scanner s = new java.util.Scanner(exec.getInputStream()).useDelimiter("\\A");
System.out.println(s.next());
每当我尝试getRuntime().exec("./home/user/test/test");
时,我都会得到您遇到的确切错误。 java.io.IOException: Cannot run program "./home/user/test/test": error=2, No such file or directory
。
要从任何目录执行任何命令,请遵循以下方法。
String []command ={"/bin/bash","-c", "ls"};
Process exec = getRuntime().exec(command,null,new
File("/home/user/test"));
java.util.Scanner s = new java.util.Scanner(exec.getInputStream()).useDelimiter("\\A");
System.out.println(s.next());
希望这对您有所帮助。