如何从另一个路径执行脚本

时间:2010-09-14 10:16:48

标签: java shellexecute

我想从java项目中执行myscript.sh 我想做的电话是这样的:

Process p = Runtime.getRuntime().exec("./myscript.sh "+param1+" "+param2);

问题是这个script.sh不在同一个路径中,所以我试着这样做:

Process p = Runtime.getRuntime().exec("src/main/resources/./myscript.sh "+param1+" "+param2);

但是脚本不再执行了。我想问题就在于我放置路径的方式,因为我已经检查过,如果脚本在同一条路径下,脚本就能正常工作。

有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

您可以使用ProcessBuilder代替。在the documentation for Runtime.exec中,您甚至可以阅读以下内容:

  

ProcessBuilder.start()现在是使用修改后的环境启动流程的首选方法。

如文档中所示,您可以使用pb.directory(File f)设置工作目录:

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
// ...
pb.directory("myDir");
Process p = pb.start();