我正在尝试使用Groovy10在WildFly 10上取消部署应用程序。对于取消部署,我将通过Groovy脚本执行以下命令
'{Wildfly_home}/bin/jboss-cli.sh -c --command="undeploy {earfile}"'.execute()该命令根本没有被执行。所以我捕获了错误流,它给了我以下消息:
'***.ear"' is assumed to be a command(s) but the commands to execute have been specified by another argument: ["undeploy]我也试着去掉了双引号,但没有用。
有人能帮我吗?
发布于 2017-10-05 00:45:17
只有一个很长的机会:查看手册
https://docs.jboss.org/author/display/WFLY/Command+Line+Interface?_sscc=t
我建议这样做:
'{Wildfly_home}/bin/jboss-cli.sh -c --command=undeploy\ {earfile}'.execute()或
'{Wildfly_home}/bin/jboss-cli.sh -c "--command=undeploy {earfile}"'.execute()请注意,这个想法是让解释器解析所有--命令...作为一个单独的论点,也许这样我们就可以得到它所期望的论点。
编辑过的
也许您的问题在于执行整个命令行的方式。想做这样的事吗?
def arguments = [ '/bin/sh', '-c', '/wherever/it/is/jboss-cli.sh', '-c', '--command=undeploy /some/dir/your.ear' ]
ProcessBuilder builder = new ProcessBuilder(executionChain);
builder.environment().putAll(envVars);// optional
builder.directory(baseDir); // optional
Process p = builder.start();
int ret = p.waitFor();也许这样解释器就不会因为分离命令参数而伤害你了。
发布于 2017-10-05 18:59:12
我可以解决这个问题。编辑后的命令如下
"{Wildfly_home}/bin/jboss-cli.sh -c --命令=‘取消部署{earfile}'".execute()
我把单引号换成了双引号,反之亦然。这对我很管用。谢谢你的帮助。
https://stackoverflow.com/questions/46564144
复制相似问题