使用自定义URI时,Java Runtime exec方法抛出错误

时间:2014-10-17 16:12:47

标签: java windows runtime.exec custom-url

我正在使用命令提示符运行此命令,它运行正常:没有任何问题:

start demo:" -ping -ip 172.18.102.65"

在上面的命令中,demo:是我创建的custom uri,我将参数传递给-ping-ip和{{1}的自定义uri使<an_ip_address>工作。

但是当我使用此代码运行相同的命令时,它无法正常工作:

custom uri

我收到一条错误消息:Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c", "start", "demo:\" -ping -ip 172.18.102.65\""});

请建议如何使这项工作。

1 个答案:

答案 0 :(得分:1)

在澄清问题后重写我的回答(谢谢!)。

这是适用于我的语法:

Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c", "start demo:\" -ping -ip 172.18.102.65\""});

似乎解析类java.lang.ProcessImpl中的参数的代码以一种使得生成的Windows命令行不正确的方式解释\"。显然,使用“start ...”作为单个参数可以解决这个问题。

编辑:要使此URI在Internet Explorer中正常工作,您需要根据URL编码规则转义双引号,因此您需要在地址栏中键入以下内容:

demo:%22 -ping -ip 172.18.102.65%22

其中%22(十六进制值)表示"

的网址编码代码