【发布时间】:2014-06-30 13:01:16
【问题描述】:
我正在使用 java 代码调用 shell 脚本:
ProcessBuilder pb2=new ProcessBuilder("/home/abhijeet/sample1.sh ");
Process script_exec = pb2.start();
运行成功,但是我需要传递一些参数给它,所以我需要执行这个脚本:
param1=abc param2=xyz /home/abhijeet/sample1.sh
我试过这段代码:
ProcessBuilder pb2=new ProcessBuilder("/home/abhijeet/sample1.sh ","param1=abc","param2="xyz");
但它对我不起作用。如何在使用 Processbuilder 调用它时将争论传递给 shell 脚本?
注意:我的问题是关于将参数传递给 shellscript,而不是命令。我已阅读建议的可能重复的问题,但这并不能解决我的问题,我尝试过这种方式,即将参数传递给命令,不适用于 shellscript
【问题讨论】:
-
你试过明显的:
ProcessBuilder pb2=new ProcessBuilder("/home/abhijeet/sample1.sh param1=abc param2=xyz");? -
@SirTroll:我已经读过,但这并没有解决我的问题,我尝试过,这是为了将参数传递给命令,而不是 shellscript
-
你“尝试”的代码会给你一个语法错误。
-
你也可以使用Apache commons exec library。