Redian新闻
>
关于Runtime.getRuntime().exec的问题
avatar
关于Runtime.getRuntime().exec的问题# Java - 爪哇娇娃
w*e
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
avatar
q*c
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

avatar
m*t
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

avatar
g*e
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

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。