JxBrowser之一:Java嵌入Chrome浏览器

时间:2023-01-20 21:49:18

1、JxBrowser是一个让Java可以轻松集成Chrome浏览器的跨平台库;一般用于网络爬虫或者网页自动化测试等。

官方网址:https://jxbrowser.support.teamdev.com/support/home

其中使用说明非常详细:https://jxbrowser.support.teamdev.com/support/solutions

 

2、嵌入浏览器代码

由于只用于测试,所以在csdn上找到一个可用的版本进行测试:https://download.csdn.net/download/lotus52/10669583

①项目中加入三个库:

jxbrowser-6.21.jar

jxbrowser-win64-6.21.jar(根据不同系统版本就行选择)

license.jar

 

②代码

import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.ba; import com.teamdev.jxbrowser.chromium.swing.BrowserView; import javax.swing.*; import java.awt.*; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.math.BigInteger; public class JxBrowserTest { //请使用正版授权
    static { try { Field e = ba.class.getDeclaredField("e"); e.setAccessible(true); Field f = ba.class.getDeclaredField("f"); f.setAccessible(true); Field modifersField = Field.class.getDeclaredField("modifiers"); modifersField.setAccessible(true); modifersField.setInt(e, e.getModifiers() & ~Modifier.FINAL); modifersField.setInt(f, f.getModifiers() & ~Modifier.FINAL); e.set(null, new BigInteger("1")); f.set(null, new BigInteger("1")); modifersField.setAccessible(false); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { Browser browser = new Browser(); BrowserView view = new BrowserView(browser); JFrame frame = new JFrame("JxBrowser"); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(view, BorderLayout.CENTER); frame.setExtendedState(JFrame.MAXIMIZED_BOTH); frame.setLocationRelativeTo(null); frame.setVisible(true); browser.loadURL("https://www.baidu.com/"); } }

 

3.显示效果

JxBrowser之一:Java嵌入Chrome浏览器

 

以上。