Java 从Ant运行bash脚本并向其传递多个参数
我正在尝试从Ant构建文件运行以下命令:Java 从Ant运行bash脚本并向其传递多个参数,java,bash,ant,exec,Java,Bash,Ant,Exec,我正在尝试从Ant构建文件运行以下命令: sh /home/myuser/scripts/run.sh -p=8888 -z=true /home/myuser/resources/mydir 到目前为止,这是我最好的尝试: <target name="run"> <exec executable="/bin/bash"> <arg line="/home/myuser/scripts/run.sh"/> <ar
sh /home/myuser/scripts/run.sh -p=8888 -z=true /home/myuser/resources/mydir
到目前为止,这是我最好的尝试:
<target name="run">
<exec executable="/bin/bash">
<arg line="/home/myuser/scripts/run.sh"/>
<arg line="-p=8888"/>
<arg line="-z=true"/>
<arg line="/home/myuser/resources/mydir"/>
</exec>
</target>
所以看起来Ant在我的参数周围插入了单引号。有没有办法禁用此行为?我建议您尝试在详细模式下使用Ant运行任务-例如,在Ant命令行上传递
-v
。然后,您应该看到Ant如何将上述任务格式化为命令行
我注意到,您引用的命令是针对Bourne shell
sh
,但在您的exec任务中,您正在运行bash
-这可能是造成差异的原因吗?谢谢@martin clayton(+1)-请查看上面的更新,再次感谢。单引号插入日志消息中,以便您可以“看到”空白,它们实际上并不包含在命令运行中(这就是“不属于命令的一部分”消息试图说的)。如果使用/bin/sh而不是/bin/bash,会发生什么?
[exec] Current OS is Linux
[exec] Executing '/bin/bash' with arguments:
[exec] '/home/myuser/scripts/run.sh'
[exec] '-p=8888'
[exec] '-z=true'
[exec] '/home/myuser/resources/mydir'
[exec]
[exec] The ' characters around the executable and arguments are
[exec] not part of the command.
[exec] Usage: <run> [options] <your dir>