我想从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);
但是脚本不再执行了。我想问题就在于我放置路径的方式,因为我已经检查过,如果脚本在同一条路径下,脚本就能正常工作。
有什么想法吗?
提前致谢
答案 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();