JCEF 初体验,window系统构建jar包
前言
本文记录如何通过jcef源代码去构建自己所需要的jar包,此文章构建的为windows64位jcef 的 jar 包,若需要构建 32 位的 jar 包,则需要按照文章将相关准备软件设置为 32 位版本
准备工作
首先我们可以前往JCEF的源代码托管页面去查看,该页面也有详细的构建步骤和所需条件
相关软件准备
此图是官方构建所需要的相关工具软件版本,此文按照此版本进行构建

部分软件安装教程引用互联网上相关安装教程文档
- GIT 软件(没有系统位数要求),安装教程
TortoiseGit(git工具,熟悉git命令的也可不安装此工具) - Java version 7 to 14. JAVA环境,推荐JAVA1.8(有系统位数要求,若想构建32位的jar包,则需要使用JAVA1.8 32位),安装教程
- Python version 2.6+ or 3+. Python环境,推荐Python2.7(没有系统位数要求),安装教程
- CMake version 3.19 or newer. CMake(没有系统位数要求),安装教程
- Visual Studio 2019 VS开发工具,用于生成,安装教程
以下是我的安装环境

注意事项
构建过程需要下载部分文件,需要用到 kx上网,当然我也会提供本文涉及到的文件,若不想用我的,可自行寻找方法
一,获取JCEF源码
二、CMakeLists.txt 文件
进入 src 文件夹,打开 CMakeLists.txt 文件,并找到下图处,将对应部分进行注释
搜索 Downloading clang-format from Google Storage 快速导航到此处,将图中红框部分进行注释或删除

查看 CMakeLists.txt 文件,可以查看到此源码构建需要使用到的命令和环境,如图,构建64位需要输入命令
cmake -G "Visual Studio 16" -A x64 ..,若构建32位,则需要输入cmake -G "Visual Studio 16" -A Win32 ..。注意,此命令需要在src\jcef_build路径下输入

注:过程中会下载对应的 CEF chromium 包,此处需要用到 kx上网工具,不然下载速度比蜗牛还慢,若直接使用我的可跳转至2.42.1 查看 CMakeLists.txt 文件,搜索 CEF_VERSION ,图中红框处,就是构建所需要的 CEF chromium 包,将其版本号进行复制

2.2 进入CEF各版本下载地址页面,在图中此处粘贴版本号进行搜索

2.3 上方可选择不同系统位数,本文选择Windows 64-bit,最下方 ALL Builds 类目中第一条就是我们所需要的,直接点击即可进行下载

2.4 注:本人也提供下载好的相关版本供各位使用,需要的可以自行下载,git地址

三、CEF chromium 包准备
- 进入 src\third_party\cef 文件夹下,将第4步下载好的 CEF chromium 包,解压复制到此路径下(使用我的则不需要解压),注意文件夹名称不能更改(需要构建32位的将32位包解压后复制到此路径下即可)


四、开始构建
4.1 创建 jcef_build 文件夹
在地址栏出输入 cmd 快捷打开命令行窗口

输入如下命令,创建 jcef_build 文件夹并进入,必须为此名称
mkdir jcef_build && cd jcef_build

4.2 通过 cmake 命令进行构建
输入 cmake -G "Visual Studio 16" -A x64 .. 进行构建,此处若是构建失败,大概率是环境版本位数的问题,将环境修改为你需要构建的位数版本,出现下图所示,即构建成功

4.3 VS2019 生成
将刚构建好的文件中 jcef.sln 使用vs2019打开

在工具栏中打开 生成->配置管理器

在配置管理器中,将 活动解决方案配置 设置为 Release , 活动解决方案平台 设置为 x64

点击 生成->生成解决方案 ,然后等待完成

等待输出窗口出现 ========== 生成: 成功 4 个,失败 0 个,最新 0 个,跳过 1 个 ========== 即为完成

4.4 构建 JCEF 的 Java 的 class 文件
将命令行窗口导航到 src\tools 目录下,运行此命令
compile.bat win64(若是构建32位,把win64改成win32)

进行测试,命令行窗口分别运行
run.bat win64 Release detailed和run.bat win64 Release simple出现以下窗口,即为成功(页面无内容是因为默认访问的 google.com ,可以在地址栏输入百度的地址进行测试 )


五、打包
在命令行窗口导航到 src\tools 目录下,运行 make_distrib.bat win64 (若是构建32位,把win64改成win32)

六、完成
进入此目录 src\binary_distrib ,该目录下就是我们构建好的相关文件和jar包

进行jcef项目开发时,需要将红框中的进行引入

最后
因为项目需要用到,所以研究这个也有一段时间了,期间各种错误,网络上相关资料也少得可怜,最终靠摸索终于初步理解(若是你的构建步骤出错,大概率为版本问题,若版本无问题,可以先在CEF论坛上输入关键字进行查找)
有兴趣的也可查看这篇文章进行开发体验,“JCEF 初体验一,快捷键打开开发者工具”
最后,感谢如下大佬的文章
https://blog.csdn.net/u013642500/article/details/102655124 奔跑的苍狼
JCEF 初体验,window系统构建jar包的更多相关文章
- maven构建jar包
1.执行可执行的class,代码内需要有入口main方法 2.通过mvn package来构建jar包 3.使用java -jar test.jar来执行jar包 https://www.cnblog ...
- pytorch入门2.1构建回归模型初体验(模型构建)
pytorch入门2.x构建回归模型系列: pytorch入门2.0构建回归模型初体验(数据生成) pytorch入门2.1构建回归模型初体验(模型构建) pytorch入门2.2构建回归模型初体验( ...
- 一个tomcat下,两个系统的jar包可以相互引用。
将道路挖占管理系统(rems)从交通设备设施系统(tms)中剥离出去以后,在本地调试的时候是在同一个Tomcat下启动的,上传文件成功. 然后部署到西安以后,分成两个tomcat以后,发现rems上传 ...
- gitlab+jenkins自动构建jar包并发布
一.背景介绍: 公司软件都是java开发的,一般都会将java代码打包成jar包发布:为了减轻运维部署的工作量,合理偷懒,就需要自动化流程一条龙服务:开发将代码提交到gitlab--->jenk ...
- Linux系统下jar包的启动方式
Linux 运行jar包命令如下: 方式一: Java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? ...
- 用dockerfile构建基于centos系统的jar包的镜像
实际示例: [root@master01 home-dataline]# ls dataline.jar Dockerfile jdk-8u181-linux-x64.tar.gz [root@mas ...
- window下打jar包
比如我的项目在 F/Myjar F:\Myjar>ll'll' 不是内部或外部命令,也不是可运行的程序或批处理文件. F:\Myjar>cd mian系统找不到指定的路径. F:\Myja ...
- [Maven]Maven构建可执行的jar包(包含依赖jar包)
----------------------------------------------------------------- 原创博文,如需转载请注明出处! 博主:疲惫的豆豆 链接:http:/ ...
- Android Studio 导入系统 jar包
1.当前需要导入系统jar包的module所对应build.gradle中添加如下依赖: provided files('libs/classes-full-debug.jar') 也可以图形化设置: ...
随机推荐
- Docker容器编译安装Redis
Docker容器编译安装Redis 1.创建容器 -i 交互模式 -d 后端运行 -h 容器的hostname --name 容器名 --network 网卡 --ip IP地址 -p 端口映射 -- ...
- Gitee整改之思考
本文主要内容如下: 1.Gitee是什么? 2.Gitee与Github的区别有哪些? 3.为什么要使用Gitee? 4.Gitee的商业模式是怎样的? 5.Gitee为何会被整改? 6.Gitee这 ...
- 入坑KeePass(三)安全设置完后后留存
1.文件> 数据库设置 > 安全 迭代次数改成500000 2.工具 > 选项 2.1.安全 2.2.策略 2.3.集成 2.4高级
- SQL注入漏洞篇
一篇SQL注入漏洞汇总,更新中-- 如有缺陷 望大佬指正 SQL注入产生的原因? 当程序执行逻辑时没有对用户输入的参数做过滤处理,使参数直接与后台数据库产生逻辑交互,即SQL注入黑客就可以利用各种SQ ...
- 关于Node.js 链接mysql超时处理(默认8小时)
备注:这是在pm2配置node环境下,超过8小时mysql自动关闭的情况下出现的解决方法:1.封装mysql.js var mysql = require('mysql'); var connecti ...
- Ubuntu系统iptables安全防护整改计划
端口开放 默认防火墙是开放所有端口的,如果拿来做应用服务器,就很危险,所以要把防火墙用起来,只将需要的端口开放,ubuntu用的是iptables防火墙. iptables处理流程 iptables ...
- svn :不能打开文件“/data/svn/repo/format”: 权限不够
解决方法:关闭selinux vi /etc/sysconfig/selinux 将其中的SELINUX=enforcing 改为SELINUX=disabled 即可.
- DBPack 读写分离功能发布公告
在 v0.1.0 版本我们发布了分布式事务功能,并提供了读写分离功能预览.在 v0.2.0 这个版本,我们加入了通过 UseDB hint 自定义查询请求路由的功能,并修复了一些 bug.另外,在这个 ...
- HMS Core音频编辑服务支持7种音频特效,助力一站式音频处理
多媒体时代,音频作为内容传播中的重要形式,因其不受空间限制.认知负担小.声音元素多样化等特点,广泛应用于短视频制作.儿童在线教育.有声阅读.游戏等领域产品,在各种形式的音频呈现过程中,合理添加音效能够 ...
- 1 什么是Zookeeper 能干什么
1 Zookeeper 概述 美团,饿了么,淘宝,58 同城等等应用都是 zookeeper 的现实生活版 博主我开了个饭店,如何才能让大家都能吃到我们的饭菜?需要入驻美团,这样大家就可以在美团 ap ...


