网上有关于JAVA调用火狐内核的资料不多,而且比较杂乱。我在此处整理出JAVA调用火狐内核制作浏览器最简单的方案,以供参考。
教程中所涉及到需要下载的资源,都在代码示例中,如果您不想一个一个下载资源,可直接下载“代码示例”:
http://download.csdn.net/detail/ajaxhu/6394751
首先纠正一个误区,很多人认为JAVA调用火狐内核只需要导入相关JAR包就行了,这是错误的。火狐内核需要在XUL的基础上运行,所以我们需要安装并配置xulrunner。我会在后面的教程中一一说明。
我们先下载xulrunner,从官方链接下载:http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.1.3/contrib/win32/xulrunner-1.8.1.3.en-US.win32.zip。下载后解压到任意文件夹(我这里以桌面为例),我们打开cmd,找到解压后文件夹的位置,输入:
xulrunner --register-user
回车完成xulrunner的安装。整个操作如下图所示:
注意:有些人的操作系统可能是英文的,把上面指令中的“桌面”改成desktop:
cd desktop\xulrunner。
如果你做完上述操作,已经成功一半了。
我们这个浏览器的界面,采用的是org.eclipse.swt这一套的操作,需要导入这个jar包,这个jar包可以在你的eclipse安装路径文件夹中的plugins文件夹中找到:
也可以从这个链接去下载:
http://download.csdn.net/detail/ajaxhu/6394647(建议直接从自己的eclipse\plugins文件夹中找)。
最后一步,打开eclipse,新建一个工程(这里叫javafox),将上面的org.eclipse.swt..................jar放到工程目录中,右键->add to build path。
新建一个Main.java,将如下代码粘贴进去,运行即可:
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
static Browser browser;
public static void main(String[] args) throws IOException {
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout(2, true));
shell.setText("Change DOM Value");
try {
browser = new Browser(shell, SWT.MOZILLA);
} catch (SWTError e) {
System.out.println("Could not instantiate Browser: "
+ e.getMessage());
return;
}
browser.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
true, 2, 1));
//从指定网址获取html,将html加载到浏览器中
String url="http://dict.youdao.com/";
browser.setText(fetchHtml(url, "utf-8"));
shell.setSize(1200, 1200);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
/**
* 抓取某个网页的源代码
*
* @param urlstr
* 要抓取网页的地址
* @param charset
* 网页所使用的编码 如"utf-8","gbk"
* @return
* @throws IOException
*/
public static String fetchHtml(String urlstr, String charset)
throws IOException {
URL url = new URL(urlstr);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
InputStream is = con.getInputStream();
InputStreamReader isr = new InputStreamReader(is, charset);
String result = "";
int read;
while ((read = isr.read()) != -1) {
result += (char) read;
}
isr.close();
return result;
}
}
运行结果:
如果您运行代码的时候出现了:Could not instantiate Browser: No more handles [Could not detect registered XULRunner to use],说明您的xulrunner没有安装成功,请将教程完整看完,不要只看代码部分。。。。。。
分享到:
相关推荐
不过事实上,Gecko 内核的浏览器仍然还是Firefox (火狐) 用户最多,所以有时也会被称为Firefox内核。此外Gecko也是一个跨平台内核,可以在Windows、 BSD、Linux和Mac OS X中使用。 补充:JavaScript引擎是Spider...
用JAVA编写的多种浏览器Demo程序,集成火狐的Gecko内核、调用IE内核
火狐Firefox浏览器驱动geckodriver最新版,,火狐Firefox浏览器驱动geckodriver最新版
适用于Firefox和其他基于Gecko的浏览器的Adblock Plus扩展
自用浏览器基于Gecko52内核写的,基于Winform开发,仿Chrome式多选项卡,一个选项卡独立工具栏和显示网页模块,不是传统一个工具栏下面多个选项卡,可以弹出下载保存框,文件下载完有文件路径,是否打开文件提示,...
在android上基于gecko引擎的浏览器简单实现,解决在低版本android系统webview对ES6支持不好的问题。
Gecko是Firefox浏览器应用内核,本文件为完整版,从github复制下来的,希望可以对有开发需求或学习需求的朋友们给予便利和帮助。
selenium--Firefox浏览器驱动GeckoDriver geckodriver-v0.29.1-win64
Mozilla Firefox,中文俗称“火狐”(正式缩写为Fx或fx,非正式缩写为MF),是一个自由及开放源代码的网页浏览器,使用Gecko排版引擎,支持多种操作系统,如Windows、Mac OS X及GNU/Linux等。该浏览器提供了两种版本...
用于解决selenium自动化测试过程中,报错【'geckodriver' executable needs to be in PATH. 】,selenium245版本支持最佳火狐浏览器版本为46.0.1,已亲测。
三大浏览器内核之一,配合xulruner开发自己的浏览器,非常不错的东西。
在Selenium测试脚本中,需要将geckodriver.exe驱动程序的路径设置为系统路径,在创建Firefox WebDriver实例时通过指定geckodriver.exe文件路径和Firefox二进制文件路径,从而启动Firefox浏览器并运行测试脚本。gecko...
avant browser 2012 alpha 1 ,把firefox内核 并入到avant browser 实现gecko + trident 双核浏览器。最近国内新型的浏览器都是chrome+ie。avant算是首创。 avant一直以占用资源小,速度快,操作稳定著称。新版本...
html5开发
geckodriver是selenium自动化库的火狐浏览器驱动,我们想要用selenium操作火狐浏览器,我们就必须要有一个geckodriver驱动程序。
Mozilla Firefox,中文俗称“火狐”(正式缩写为Fx或fx,非正式缩写为MF),是一个自由及开放源代码的网页浏览器,使用Gecko排版引擎,支持多种操作系统,如Windows、Mac OS X及GNU/Linux等。该浏览器提供了两种版本...
分享一下火狐浏览器驱动程序geckodriver,在github上下载下来的,可以很方便获取网页信息及控制网页,方便github下载困难的同志。(64位)
Mozilla Firefox,通称Firefox,中文也通称火狐,是一个自由及开源的网页浏览器[14],由Mozilla基金会及其子公司Mozilla公司开发。Firefox支持Windows、macOS及Linux,其移动版支持Android及Firefox OS,这些版本的...
Mozilla Firefox,中文俗称“火狐”(正式缩写为Fx或fx,非正式缩写为MF),是一个自由及开放源代码的网页浏览器,使用Gecko排版引擎,支持多种操作系统,如Windows、Mac OS X及GNU/Linux等。该浏览器提供了两种版本...