2010-09-14 67 views
1

我想从java项目执行myscript.sh
我想要做的调用是这样的:如何从另一个路径执行脚本

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

的问题是,这script.sh是不是在相同的路径,所以我tryed做:

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

但脚本不再执行。我想问题在于我放置路径的方式,因为我已经检查过,如果脚本处于相同路径中,脚本完美运行。

任何想法?

在此先感谢

+0

你可以看到FileNotFoundException异常? – 2010-09-14 10:19:22

回答

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(); 
+0

是的。那就对了。 +1 – 2010-09-14 10:30:53

+0

谢谢!!这是解决方案! – 2010-09-14 11:08:13

相关问题