1

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

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

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

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

但是脚本不再执行。我想问题出在我放置路径的方式上,因为我已经检查过,如果它在同一路径中,脚本可以完美运行。

有任何想法吗?

提前致谢

4

1 回答 1

2

您可以改用ProcessBuilder。在Runtime.exec 的文档中,您甚至可以阅读以下内容:

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

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

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
// ...
pb.directory("myDir");
Process p = pb.start();
于 2010-09-14T10:23:46.947 回答