天天看點

JxBrowser之一:Java嵌入Chrome浏覽器

JxBrowser之一:Java嵌入Chrome浏覽器

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浏覽器

以上。

JxBrowser之一:Java嵌入Chrome浏覽器