w*******e 发帖数: 285 | 1 我想用java程序在远程执行任意传输的命令,比如
wget --header "host: www.google.com" -O result.htm 64.233.167.99
但是直接用Runtime.getRuntime().exec运行整个命令就会出错,因为"host: www.
google.com"里面有空格。我需要拆开成一个array来执行才行,但是有的时候比较复杂
,比如引号当中有引号什么的,有没有什么现成的parser把参数break成跟普通的shell
解析的一样的呢?
比如输入
wget --header "host: www.google.com" -O result.htm 64.233.167.99
就能输出
wget |
q*c 发帖数: 9453 | 2 产生一个 .sh 文件, 然后执行那个文件, 这样就搞定了。
没有试验过, 你实验实验报告结果 :)
shell
【在 w*******e 的大作中提到】 : 我想用java程序在远程执行任意传输的命令,比如 : wget --header "host: www.google.com" -O result.htm 64.233.167.99 : 但是直接用Runtime.getRuntime().exec运行整个命令就会出错,因为"host: www. : google.com"里面有空格。我需要拆开成一个array来执行才行,但是有的时候比较复杂 : ,比如引号当中有引号什么的,有没有什么现成的parser把参数break成跟普通的shell : 解析的一样的呢? : 比如输入 : wget --header "host: www.google.com" -O result.htm 64.233.167.99 : 就能输出 : wget
|
m******t 发帖数: 2416 | 3
shell
Does it work if you scan the array and escape double quotes with backslashes?
【在 w*******e 的大作中提到】 : 我想用java程序在远程执行任意传输的命令,比如 : wget --header "host: www.google.com" -O result.htm 64.233.167.99 : 但是直接用Runtime.getRuntime().exec运行整个命令就会出错,因为"host: www. : google.com"里面有空格。我需要拆开成一个array来执行才行,但是有的时候比较复杂 : ,比如引号当中有引号什么的,有没有什么现成的parser把参数break成跟普通的shell : 解析的一样的呢? : 比如输入 : wget --header "host: www.google.com" -O result.htm 64.233.167.99 : 就能输出 : wget
|
g******e 发帖数: 3760 | 4 我觉得没什么现成的办法,但自己写一个parser应该也很快吧。Jakarta commons 有一
个命令行的parse 包你也可以试试。
shell
【在 w*******e 的大作中提到】 : 我想用java程序在远程执行任意传输的命令,比如 : wget --header "host: www.google.com" -O result.htm 64.233.167.99 : 但是直接用Runtime.getRuntime().exec运行整个命令就会出错,因为"host: www. : google.com"里面有空格。我需要拆开成一个array来执行才行,但是有的时候比较复杂 : ,比如引号当中有引号什么的,有没有什么现成的parser把参数break成跟普通的shell : 解析的一样的呢? : 比如输入 : wget --header "host: www.google.com" -O result.htm 64.233.167.99 : 就能输出 : wget
|