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.显示效果
以上。