- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 jsp 脚本中有一个execute(String cmd),它从 Runtime 类调用 exec 方法。
当我调用本地命令(例如存储在服务器上的 php 脚本)时它会起作用。例如:/usr/bin/php/path/to/php/script arg1 arg2
所以我想我的执行命令没问题,因为它正在使用它。
现在,当我尝试调用 lynx(基于文本的 Web 浏览器)时,它不起作用。
如果我在终端中调用它,它工作正常:/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;
}
最佳答案
您需要从Process
'输出流中读取。
既然你不是,底层的 lynx 进程可能在写入输出时阻塞,等待有人清空输出流的缓冲区。 即使您要忽略输出,您仍然需要读取它,以便流程按照您的预期执行。
作为javadocs of Process例如,“由于某些原生平台只为标准输入输出流提供有限的缓冲区大小,因此未能及时写入子进程的输入流或读取子进程的输出流可能会导致子进程阻塞,甚至死锁。”
参见http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html有关如何处理此问题的一些示例。
编辑:如果您想知道,很可能当您调用 PHP 脚本时,它没有产生大量输出,因此能够在填充输出缓冲区和阻塞之前终止。 lynx 命令可能会产生更多输出,因此会遇到此问题。
关于java - 从jsp脚本调用lynx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2856635/
执行 POST 保存页面后,我返回重定向 GET 页面(即 "Post/Redirect/Get" 模式)。 这在我测试过的所有“主流”(和一些不太主流的)浏览器中都运行良好,除了 lynx 和衍生产
我想使用 保存这个特定网站的全部内容猞猁 http://build.chromium.org/f/chromium/perf/dashboard/ui/changelog.html?url=%2Ftr
我在 Ubuntu 上使用 Lynx 命令行浏览器。我有一个 Generate Report我的网页上的按钮,单击该按钮时,将从我的 Rails 应用程序下载 Excel 报告。 我无法找到下载的文件
我正在 lynx Web 浏览器中寻找元素检查器。我想从网站中提取一些数据。它涉及每次稍微更改链接的 URL 并获取信息。我尝试在 Firefox 中使用宏,但不知道如何编写 for 循环之类的东西。
我有一个 bash 脚本 mystuff 包含一行 lynx -dump http://example.com >tmpfile 并且脚本工作正常,包括这部分,除了当我以非交互方式运行它时: $ ./
我在网站上有一张图片,里面有文字。如果图像被禁用(包括 Lynx),有没有办法显示纯文本而不是图像? 最佳答案 使用 img 标签的 alt 参数 关于html - 仅在 Lynx 中显示消息?,我
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我想知道基于文本的网络浏览器 lynx 在哪里存储其 cookie。查看手册有关于如何启用 cookie 等的选项,但找不到让 lynx 删除存储的 cookie 的方法。因此,我可能必须手动删除它们
我想为我的服务器开发一个 java 应用程序,但我需要对网站 API (Twitch) 进行身份验证。为此,我需要通过网页连接到帐户,因此我想使用 Lynx 来执行此操作。但是,当我尝试从 java
我对 Lynx 有疑问。我正在尝试使用 -auth 标志登录网页。我使用的线路是 lynx -accept_all_cookies -auth=mydomain\myuser:mypass http:
我的网站有一个 div 元素(以 block 的形式),我想在用户通过不支持 JavaScript 的基于文本的浏览器(如 Lynx)访问该网站时隐藏它。 基本上我需要编写什么命令或代码才能实现这一点
我在 vps 上安装了 Centos 6.2 x64、Lynx 2.8.6rel.5。 我在控制台中尝试 [root@turbomoney ~]# lynx http://www.google.com
所以我用 PHP 编写了一个脚本,需要 javascript 才能运行。我很难找到关于如何使用一些 linux 工具使其自动运行 javascript 和 php 同时运行的解决方案(因为在我的浏览器
是否可以向 lynx 添加自定义键盘映射(在配置文件 ~/.lynxrc 中),它将信息(例如当前 URL、html、标题等)发送到 shell 命令? 示例用例:我在 OSX 上,shell 有一个
我在 OS X 10.11 上使用 Lynx。但是,它不会为非 ASCII 字符打印 UTF-8,而是打印它们的 ASCII 表示,或者 ef bf bd “替换”字符 (?)。 我一直在学习this
$ lynx --dump -listonly index.html 示例结果: References Visible links 1. http://lynx.invisible-island.ne
我能够像下面这样使用 curl 发布 JSON 并能够获得 JSON 输出 curl -X POST -H Content-Type:application/json -d '{"xyz":"abc"
我正在尝试通过 PHP 使用 lynx 运行 URL,下面是我正在使用的代码。 shell_exec(lynx 'www.example.com&post=123&auth=45); 类似的东西。 现
是否有可能在 bash 脚本中使用 lynx 作为浏览器获取网页内容将它存储在一个变量中(实际上只有一个网络访问页面)然后做很多 grep 来提取信息? 我试过类似的东西: content="$(ly
我的目标是编写一个小的 bash 脚本,将给定 PHP 函数手册页的内容输出到终端。我当前的脚本(pfunc)如下: #!/bin/bash if [ -z "$1" ] then
我是一名优秀的程序员,十分优秀!