【发布时间】:2010-05-18 11:12:15
【问题描述】:
我在 jsp 脚本中有一个 execute(String cmd),它从 Runtime 类调用 exec 方法。
当我调用本地命令时它可以工作,例如存储在服务器上的 php 脚本。例如:/usr/bin/php /path/to/php/script arg1 arg2
所以我猜我的执行命令没问题,因为它正在使用它。
现在当我尝试调用基于文本的网络浏览器 lynx 时,它不起作用。
如果我在终端中调用它,它可以正常工作: /usr/bin/lynx -dump -accept_all_cookies 'http://www.someurl.net/?arg1=1&arg2=2'
但是当我从我的执行命令中调用它时,什么都没有发生......
知道为什么吗?
这是我的执行方法:
public String execute(String cmd){
Runtime r = Runtime.getRuntime();
Process p = null;
String res = "";
try {
p = r.exec(cmd);
InputStreamReader isr = new InputStreamReader(p.getInputStream());
BufferedReader br = new BufferedReader(isr);
String line = null;
//out.println(res);
while ((line = br.readLine()) != null) {
res += line;
}
p.waitFor();
} catch (Exception e) {
res += e;
}
System.out.println(p.exitValue());
return res;
}
【问题讨论】: