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') 也可以图形化设置: ...
随机推荐
- 利用shell脚本自动化备份数据库与手动备份还原数据库操作
1.在linux操作系统上手动备份数据库 mysqldump -h 服务器IP地址 -u root -p数据库密码 --databases 所要备份的数据库名称 > /路径/数据库.sql(自定 ...
- 前端ES6 特性兼容查询
ES6 http://kangax.github.io/compat-table/es6/ ES5 http://kangax.github.io/compat-table/es5/ ES 2016+ ...
- 针对elementUI 中InfiniteScroll按需引入的一点注意事项
大家为了节省空间,常常进行按需引入来节省空间,这里我给大家来介绍一下element中按需引入无限滚动指令注意的事项. 针对前面element 按需引入的一些配置这里就不再详细介绍了. 那么这里讲的是在 ...
- uniapp使用scroll-view与swiper组件实现tab滑动切换页面需要注意的问题
效果图: tab栏可以滑动,切换页面跟随tab栏同步滑动.这里需要注意的是使用swiper组件时,它会有一个默认的高度,你必须动态的获取数据列表的高度覆盖原来的默认高度. 下面是代码 html < ...
- SAP BPC 清除CUBE 中的数据
原理:先根据模型和查询条件取出数据,然后把金额设置为0,再写回CUBE. 1.获取数据并清空金额 *&--------------------------------------------- ...
- 聊聊 RPA 方向的规划:简单有价值的事情长期坚持做
「简单有价值的事情长期坚持做」 这是成功最简单,但也最难学的秘诀.不经过训练,人很难意识到时间复利的威力. 仙剑奇侠传的「十里坡剑神」和金庸群侠传的「十级野球拳」,就是简单的事情持之以恒反复做,最后就 ...
- adb工具
ADB:全称为Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具. 首先,下载ADB工具并安装: 下载:百度就有.下载后是个压缩包,将其拷贝到cm ...
- Collection集合概述和集合框架介绍avi
集合概述 在前面基础班我们已经学习过并使用过集合ArrayList<E> ,那么集合到底是什么呢?· ~集合︰集合是java中提供的一种容器,可以用来存储多个数据集合和数组既然都是容器,它 ...
- vue Blob 下载附件报错
vue Blob 下载附件报错,不妨试试: window.location.href=后台地址
- samba打开一个文件的函数调用栈
ceph_open cephwrap_open open_fn smb_vfs_call_open SMB_VFS_OPEN fd_open fd_open_atomic open_file open ...