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') 也可以图形化设置: ...
随机推荐
- PyTorch保存模型、冻结参数等
此外可以参考PyTorch模型保存.https://zhuanlan.zhihu.com/p/73893187 查看模型每层输出详情 Keras有一个简洁的API来查看模型的每一层输出尺寸,这在调试网 ...
- JS:Boolean
Boolean数据类型: 有两个值:true false Boolean会把不是Boolean的值变为Boolean值 var a = 1; var b = true; var c = 0; var ...
- Vue MD5加密你用吗?
安装 npm install --save js-md5 1.按需引入(在你需要的项目中引入) 引入: import md5 from 'js-md5' 使用: md5('加密信息') 2.全局引入( ...
- 编程技巧│提高 Javascript 代码效率的技巧
目录 一.变量声明 二.三元运算符 三.解构赋值 四.解构交换 五.箭头函数 六.字符串模版 七.多值匹配 八.ES6对象简写 九.字符串转数字 十.次方相乘 十一.数组合并 十二.查找数组最大值最小 ...
- 全新升级的AOP框架Dora.Interception[汇总,共6篇]
多年之前利用IL Emit写了一个名为Dora.Interception(github地址,觉得不错不妨给一颗星)的AOP框架.前几天利用Roslyn的Source Generator对自己为公司写的 ...
- NC18979 毒瘤xor
NC18979 毒瘤xor 题目 题目描述 小a有 \(N\) 个数 \(a_1, a_2, ..., a_N\) ,给出 \(q\) 个询问,每次询问给出区间 \([L, R]\) ,现在请你找到一 ...
- java枚举和注解
枚举 一.枚举(enumeration) 是一组常量的集合,可以理解为:枚举属于一种特殊的类,里面只包含一组有限的特定的对象,构造方法默认为private. 二.枚举的两种实现方式 1.自定义实现枚举 ...
- linux 配置集群需要修改的东西
1. 服务器主机名 vi /etc/hostname 按Esc,然后:wq! ,保存,然后重启电脑 reboot 2.修改IP和mac,也可以设置成自动的,但一般是固定的 cd /etc/syscon ...
- 阈值PSI代码
阈值PSI 若交集数量超过某个给定阈值时,允许分布式的各个参与方在自己集合中找到交集,且除了交集外,得不到其他额外信息. 实现论文: Multi-Party Threshold Private Set ...
- Solution -「ABC 217」题解
D - Cutting Woods 记录每一个切割点,每次求前驱后驱就好了,注意简单判断一下开闭区间. 考场上采用的 FHQ_Treap 无脑莽. #include <cstdio> #i ...


