国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java內(nèi)嵌瀏覽器CEF-JAVA、jcef、java chrome

這篇具有很好參考價(jià)值的文章主要介紹了java內(nèi)嵌瀏覽器CEF-JAVA、jcef、java chrome。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

java內(nèi)嵌瀏覽器CEF-JAVA、jcef、java chrome
jcef是老牌cef的chrome內(nèi)嵌方案,可以進(jìn)行java-chrome-h5-桌面開發(fā),下面為最新版本(2023年9月22日10:33:07)

JCEF(Java Chromium Embedded Framework)是一個(gè)基于Google Chromium的Java庫,可以在Java應(yīng)用程序中嵌入和使用Chromium瀏覽器引擎。

轉(zhuǎn)自 https://lingkang.top/archives/java-nei-qian-liu-lan-qi-cef-java-jcef-javachrome

pom.xml引入依賴

<properties>
  <maven.compiler.source>21</maven.compiler.source>
  <maven.compiler.target>21</maven.compiler.target>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>me.friwi</groupId>
        <artifactId>jcefmaven</artifactId>
        <version>110.0.25.1</version>
    </dependency>
</dependencies>

<repositories>
    <repository>
        <id>tencent</id>
        <name>tencent</name>
        <layout>default</layout>
        <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
    <repository>
        <id>nexus</id>
        <name>Nexus</name>
        <layout>default</layout>
        <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
    <repository>
        <id>aliyunmaven</id>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

上面的Maven依賴不會(huì)將chrome瀏覽器下載的,可以通過代碼或者手動(dòng)的方式下載cef的chrome。

方式一(推薦)

手動(dòng)方式,首先確認(rèn)你的運(yùn)行平臺

import java.util.Locale;

/**
 * @author lingkang
 * @created in 2023/9/22
 **/
public class PlatformTest {
    public static void main(String[] args) throws Exception{
        System.out.println(EnumPlatform.getCurrentPlatform().getOs().name().toLowerCase(Locale.ENGLISH));
        System.out.println(EnumPlatform.getCurrentPlatform().getIdentifier().split("-")[1]);
    }
}

輸出

windows
amd64

那么去到阿里云Maven搜索:jcef-natives
https://developer.aliyun.com/mvn/search
再查找依賴的版本和平臺下載jar
java-cef,java,java,jcef,chrome

點(diǎn)擊右邊的下載題標(biāo),獲取jar
用壓縮包軟件打開它
java-cef,java,java,jcef,chrome

將里面的壓縮包復(fù)制出來:jcef-natives-windows-amd64-jcef-87476e9+cef-110.0.25+g75b1c96+chromium-110.0.5481.78.tar
將壓縮包內(nèi)容解壓到項(xiàng)目目錄中,這里我項(xiàng)目創(chuàng)建了一個(gè)叫chrome的目錄:
java-cef,java,java,jcef,chrome

編寫一個(gè)簡單demo

package top.lingkang;

import me.friwi.jcefmaven.CefAppBuilder;
import me.friwi.jcefmaven.CefBuildInfo;
import me.friwi.jcefmaven.MavenCefAppHandlerAdapter;
import org.cef.CefApp;
import org.cef.CefClient;
import org.cef.browser.CefBrowser;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

/**
 * @author lingkang
 * @created in 2023/9/22
 **/
public class Demo01 {
    public static void main(String[] args) throws Exception {
        CefAppBuilder builder = new CefAppBuilder();
        // window下不需要OSR
        boolean useOSR = false;
        builder.getCefSettings().windowless_rendering_enabled = useOSR;
        builder.setAppHandler(new MavenCefAppHandlerAdapter() {
            @Override
            public void stateHasChanged(org.cef.CefApp.CefAppState state) {
                // 關(guān)閉應(yīng)用時(shí)退出jvm運(yùn)行
                if (state == CefApp.CefAppState.TERMINATED) System.exit(0);
            }
        });

        // 設(shè)置cef運(yùn)行參數(shù),這里為空
        builder.addJcefArgs(args);

        // 設(shè)置 cef chrome實(shí)例的目錄,關(guān)鍵,若不設(shè)置他會(huì)默認(rèn)從網(wǎng)絡(luò)中下載,國外網(wǎng)絡(luò)可能下載不穩(wěn)定導(dǎo)致失敗
        // 我的 cef chrome 位于項(xiàng)目的chrome目錄下 C:\Users\Administrator\Desktop\project\java\demo-desktop\chrome
        builder.setInstallDir(new File(System.getProperty("user.dir") + File.separator + "chrome"));
        // 由于是手動(dòng)設(shè)置cef的chrome,我們要跳過ins檢查,防止版本不一致導(dǎo)致從鏡像站下載
        builder.setSkipInstallation(true);

        // 全局的 CefApp 每個(gè)程序只能有一個(gè),線程安全
        CefApp build = builder.build();
        // 顯示一些版本信息
        CefBuildInfo buildInfo = CefBuildInfo.fromClasspath();
        System.out.println(buildInfo);
        CefApp.CefVersion cefVersion = build.getVersion();
        System.out.println(cefVersion);

        // 創(chuàng)建一個(gè)瀏覽器客戶端實(shí)例
        CefClient client = build.createClient();

        boolean isTransparent = true;// 透明背景

        // 創(chuàng)建一個(gè)瀏覽器實(shí)例,設(shè)置訪問 url https://www.baidu.com
        CefBrowser browser = client.createBrowser("https://www.baidu.com", useOSR, isTransparent);
        // 獲取UI組件
        Component uiComponent = browser.getUIComponent();
        // 獲得鍵盤焦點(diǎn)事件
        uiComponent.addFocusListener(new FocusListener() {
            @Override
            public void focusGained(FocusEvent e) {
                System.out.println("獲得鍵盤焦點(diǎn)事件");
            }

            @Override
            public void focusLost(FocusEvent e) {
                System.out.println("失去鍵盤焦點(diǎn)事件");
            }
        });
        // 添加一個(gè)鼠標(biāo)點(diǎn)擊監(jiān)聽
        uiComponent.addMouseListener(new MouseAdapter() {
            int i = 0;

            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println(e);
                if (i % 2 == 0) // 執(zhí)行JavaScript命令
                    browser.executeJavaScript("alert('鼠標(biāo)點(diǎn)擊')", null, 1);
                i++;
            }
        });


        // 創(chuàng)建 JFrame UI 用于放入chrome
        JFrame main = new JFrame("lingkang");
        main.getContentPane().add(uiComponent, BorderLayout.CENTER);
        main.setSize(800, 600);//大小
        main.setLocation(0, 0);//位置

        main.setVisible(true);//顯示
        main.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                // 關(guān)閉應(yīng)用時(shí)要釋放資源
                CefApp.getInstance().dispose();
                main.dispose();
                System.exit(0);//0正常退出,1非正常退出
            }
        });
    }
}

java-cef,java,java,jcef,chrome

方式二

基于方式一,刪除下面的代碼

// 設(shè)置 cef chrome實(shí)例的目錄,關(guān)鍵,若不設(shè)置他會(huì)默認(rèn)從網(wǎng)絡(luò)中下載,國外網(wǎng)絡(luò)可能下載不穩(wěn)定導(dǎo)致失敗
// 我的 cef chrome 位于項(xiàng)目的chrome目錄下 C:\Users\Administrator\Desktop\project\java\demo-desktop\chrome
// builder.setInstallDir(new File(System.getProperty("user.dir") + File.separator + "chrome"));
// 由于是手動(dòng)設(shè)置cef的chrome,我們要跳過ins檢查,防止版本不一致導(dǎo)致從鏡像站下載
// builder.setSkipInstallation(true);

它默認(rèn)會(huì)去下面的鏡像中下載文章來源地址http://www.zghlxwxcb.cn/news/detail-751783.html

// CefAppBuilder() 中的構(gòu)造參數(shù)
https://github.com/jcefmaven/jcefmaven/releases/download
https://repo.maven.apache.org/maven2/me/friwi
// 可自定義
builder.setMirrors();

到了這里,關(guān)于java內(nèi)嵌瀏覽器CEF-JAVA、jcef、java chrome的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Unity 工具之 UniWebView 內(nèi)嵌網(wǎng)頁/瀏覽器到應(yīng)用中,并且根據(jù)UGUI大小放置(簡單適配UGUI)

    Unity 工具之 UniWebView 內(nèi)嵌網(wǎng)頁/瀏覽器到應(yīng)用中,并且根據(jù)UGUI大小放置(簡單適配UGUI)

    目錄 Unity 工具之 UniWebView 內(nèi)嵌網(wǎng)頁/瀏覽器到應(yīng)用中,并且根據(jù)UGUI大小放置(簡單適配UGUI) 一、簡單介紹 二、UniWebView 組件上的幾個(gè)參數(shù)屬性選項(xiàng)介紹 三、一些關(guān)鍵接口介紹 四、Transition 五、Memory Management(內(nèi)存管理) 六、Messaging System 七、注意實(shí)現(xiàn) 八、效果預(yù)覽 九、實(shí)現(xiàn)

    2024年01月24日
    瀏覽(21)
  • selenium的java方式打開IE瀏覽器

    selenium的java方式打開IE瀏覽器

    3)選擇項(xiàng)目下的已解壓selenium-java-3.141.59后的lib目錄及兩個(gè)jar,點(diǎn)擊確定完成即可。 IE驅(qū)動(dòng)下載地址:https://www.selenium.dev/downloads/,根據(jù)自己電腦選擇對應(yīng)的下載,放入電腦E:driver 1)打開edge瀏覽器,啟用IE模式,找到更多工具的 Internet選項(xiàng) 2)點(diǎn)擊安全,將下圖四個(gè)選項(xiàng)都設(shè)置

    2024年02月15日
    瀏覽(24)
  • selenium瀏覽器自動(dòng)化測試【基于java】

    selenium瀏覽器自動(dòng)化測試【基于java】

    Selenium 是一個(gè)用于Web應(yīng)用程序的自動(dòng)化測試工具。它直接運(yùn)行在瀏覽器中,可以模擬用戶在瀏覽器上面的行為操作。 chrome.exe 默認(rèn)安裝位置:C:Program FilesGoogleChromeApplicationchrome.exe 結(jié)果我的在:C:Users91073AppDataLocalGoogleChromeApplicationchrome.exe 。。。為啥? 下載驅(qū)動(dòng) 最新

    2024年02月04日
    瀏覽(24)
  • java實(shí)現(xiàn)pdf文件添加水印,下載到瀏覽器

    java實(shí)現(xiàn)pdf文件添加水印,下載到瀏覽器

    添加itextpdf依賴 根據(jù)需求,不需要指定路徑可以刪除對應(yīng)的輸出流 效果如下:代碼中的相對路徑在src平級目錄下,test.pdf是PdfStamper里面fileOutputStream生成的,test1.pdf是fos生成的 瀏覽器下載的如下: 生成的pdf內(nèi)容如下(紅框里面是pdf原來的內(nèi)容,可以自己調(diào)整代碼中注釋掉的設(shè)

    2024年02月05日
    瀏覽(22)
  • JAVA使用selenium實(shí)現(xiàn)后臺瀏覽器截圖(含代碼+docker打包)

    JAVA使用selenium實(shí)現(xiàn)后臺瀏覽器截圖(含代碼+docker打包)

    最近接到一個(gè)特殊需求,需要每天定時(shí)截圖某網(wǎng)站首頁,保存?zhèn)洳?,因此使用JAVA實(shí)現(xiàn)了后臺截圖。 下面是完整的方法。 JAVA實(shí)現(xiàn)瀏覽器截圖,瀏覽器選用的是chrome,使用selenium-java依賴。selenium可以幫助我們調(diào)用瀏覽器,完成想要的功能。 由于是后臺截圖,不需要顯示界面,

    2024年03月13日
    瀏覽(25)
  • java實(shí)現(xiàn)瀏覽器下載附件時(shí)文件名中文亂碼解決方案

    方案一:URLEncoder 解決 IE 和 谷歌瀏覽器的附件中文名問題。 如果客戶端瀏覽器是 IE 瀏覽器 或者 是谷歌瀏覽器。我們需要使用 URLEncoder 類先對中文名進(jìn)行 UTF-8 的編碼 操作。 因?yàn)?IE 瀏覽器和谷歌瀏覽器收到含有編碼后的字符串后會(huì)以 UTF-8 字符集進(jìn)行解碼顯示。 方案二:B

    2024年03月09日
    瀏覽(88)
  • java + Selenium 實(shí)現(xiàn)自動(dòng)化測試,模擬人手點(diǎn)擊操作 chrome 瀏覽器

    引入 maven 依賴: 安裝 chromeDriver:略 SeleniumUtils.java: ChromeDriverUtils.java: 使用示例:

    2024年02月11日
    瀏覽(25)
  • 前端使用JSON編輯器、java編輯器、瀏覽器中使用eslint

    前端使用JSON編輯器、java編輯器、瀏覽器中使用eslint

    一、vue3中使用Json 編輯器 二、react中使用(也可用在vue項(xiàng)目中)可用于java、js、json等 Monaco Editor 是一個(gè)瀏覽器端的代碼編輯器,它是 VS Code 編輯器的核心部分,可以提供強(qiáng)大的代碼編輯能力,它是 VSCode 的瀏覽器版本Monaco Editor 的特點(diǎn)包括: (1)支持多種編程語言 (2)支持

    2024年01月19日
    瀏覽(21)
  • CentOS7 啟動(dòng)谷歌瀏覽器 java+Selenium+chrome+chromedriver

    CentOS7 啟動(dòng)谷歌瀏覽器 java+Selenium+chrome+chromedriver

    前言:自己想使用該技術(shù)實(shí)現(xiàn)自動(dòng)化抓取音樂,目前在window上運(yùn)行成功,需要在Linux Centos服務(wù)上跑,配置上出現(xiàn)了許多問題,特此記錄。 參考文檔:CentOS7 安裝Selenium+chrome+chromedriver+java_遠(yuǎn)方丿的博客-CSDN博客? 我們明確的是,在window上是安裝了chrome和自帶了chromeDriver的,之所

    2024年02月11日
    瀏覽(431)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包