前言

本文记录如何通过jcef源代码去构建自己所需要的jar包,此文章构建的为windows64位jcef 的 jar 包,若需要构建 32 位的 jar 包,则需要按照文章将相关准备软件设置为 32 位版本

准备工作

首先我们可以前往JCEF的源代码托管页面去查看,该页面也有详细的构建步骤和所需条件

相关软件准备

此图是官方构建所需要的相关工具软件版本,此文按照此版本进行构建



部分软件安装教程引用互联网上相关安装教程文档

  1. GIT 软件(没有系统位数要求),安装教程

    TortoiseGit(git工具,熟悉git命令的也可不安装此工具)
  2. Java version 7 to 14. JAVA环境,推荐JAVA1.8(有系统位数要求,若想构建32位的jar包,则需要使用JAVA1.8 32位),安装教程
  3. Python version 2.6+ or 3+. Python环境,推荐Python2.7(没有系统位数要求),安装教程
  4. CMake version 3.19 or newer. CMake(没有系统位数要求),安装教程
  5. Visual Studio 2019 VS开发工具,用于生成,安装教程

以下是我的安装环境

注意事项

构建过程需要下载部分文件,需要用到 kx上网,当然我也会提供本文涉及到的文件,若不想用我的,可自行寻找方法

一,获取JCEF源码

  1. 打开JCEF代码库,复制代码库地址;

    也可以直接通过官方构建教程上的地址进行克隆,本文通过此方法进行

    出现如下界面项目下载成功,src目录下为JCEF源码文件

二、CMakeLists.txt 文件

  1. 进入 src 文件夹,打开 CMakeLists.txt 文件,并找到下图处,将对应部分进行注释

    搜索 Downloading clang-format from Google Storage 快速导航到此处,将图中红框部分进行注释或删除

  2. 查看 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.4

    2.1 查看 CMakeLists.txt 文件,搜索 CEF_VERSION ,图中红框处,就是构建所需要的 CEF chromium 包,将其版本号进行复制

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

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

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

三、CEF chromium 包准备

  1. 进入 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 生成

  1. 将刚构建好的文件中 jcef.sln 使用vs2019打开

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

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

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

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

4.4 构建 JCEF 的 Java 的 class 文件

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

  2. 进行测试,命令行窗口分别运行 run.bat win64 Release detailedrun.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包的更多相关文章

  1. maven构建jar包

    1.执行可执行的class,代码内需要有入口main方法 2.通过mvn package来构建jar包 3.使用java -jar test.jar来执行jar包 https://www.cnblog ...

  2. pytorch入门2.1构建回归模型初体验(模型构建)

    pytorch入门2.x构建回归模型系列: pytorch入门2.0构建回归模型初体验(数据生成) pytorch入门2.1构建回归模型初体验(模型构建) pytorch入门2.2构建回归模型初体验( ...

  3. 一个tomcat下,两个系统的jar包可以相互引用。

    将道路挖占管理系统(rems)从交通设备设施系统(tms)中剥离出去以后,在本地调试的时候是在同一个Tomcat下启动的,上传文件成功. 然后部署到西安以后,分成两个tomcat以后,发现rems上传 ...

  4. gitlab+jenkins自动构建jar包并发布

    一.背景介绍: 公司软件都是java开发的,一般都会将java代码打包成jar包发布:为了减轻运维部署的工作量,合理偷懒,就需要自动化流程一条龙服务:开发将代码提交到gitlab--->jenk ...

  5. Linux系统下jar包的启动方式

    Linux 运行jar包命令如下: 方式一: Java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? ...

  6. 用dockerfile构建基于centos系统的jar包的镜像

    实际示例: [root@master01 home-dataline]# ls dataline.jar Dockerfile jdk-8u181-linux-x64.tar.gz [root@mas ...

  7. window下打jar包

    比如我的项目在 F/Myjar F:\Myjar>ll'll' 不是内部或外部命令,也不是可运行的程序或批处理文件. F:\Myjar>cd mian系统找不到指定的路径. F:\Myja ...

  8. [Maven]Maven构建可执行的jar包(包含依赖jar包)

    ----------------------------------------------------------------- 原创博文,如需转载请注明出处! 博主:疲惫的豆豆 链接:http:/ ...

  9. Android Studio 导入系统 jar包

    1.当前需要导入系统jar包的module所对应build.gradle中添加如下依赖: provided files('libs/classes-full-debug.jar') 也可以图形化设置: ...

随机推荐

  1. 【生成对抗网络学习 其一】经典GAN与其存在的问题和相关改进

    参考资料: 1.https://github.com/dragen1860/TensorFlow-2.x-Tutorials 2.<Generative Adversarial Net> ...

  2. 6.文本三剑客之sed

    文本三剑客之sed 目录 文本三剑客之sed sed编辑器 sed概述 sed工作流程 sed用法 sed打印 sed删除 sed替换 sed增加行内容 sed剪切粘贴与复制粘贴 sed字符/字符串交 ...

  3. redis相关知识点

    redis 的相关知识点 启动 启动代码 redis-cli -a 密码 通用命令 expire: 设置有效期 expire name 10 key key * 相关数据类型 String set:添 ...

  4. zabbix通过invoke调用监控服务可用性

    1. 通过脚本判断线上服务是否可用 telnet 127.0.0.1 端口 #线上调用的是使用的dubbo端口 通过invoke 抓取返回的code值,脚本如下 #返回code:0则视为正常,返回其他 ...

  5. UiPath图片操作截图的介绍和使用

    一.截图(Take Screenshot)的介绍 截取指定的UI元素屏幕截图的一种活动,输出量仅支持图像变量(image) 二.Take Screenshot在UiPath中的使用 1. 打开设计器, ...

  6. 【python基础】第02回 计算机基础2

    上节内容回顾 1.绝对路径与相对路径 1.路径的概念 用来标识资源的位置 2.绝对路径 类似于全球GPS定位(给到任何人都可以顺利的找到相应的资源) eg: D:\aaa\a.txt 3.相对路径 需 ...

  7. JDBC: ThreadLocal 类

    1.ThreadLocal ThreadLocal用于保存某个线程共享变量.在Java中,每个线程对象都有一个ThreadLocal<ThreadLocal,Object>,其中key就是 ...

  8. wcf连接数据库用sqlhelper,连接数一直没有释放反而增加

    找了一天,发现原因是配置的连接字符串没有加上最大连接数,所以每次请求都是一直增加,而MariaDB默认的连接数是151,为了本地多项目测试已改成以前. 下面是配置的连接字符串:  <add na ...

  9. 从工程师到技术leader思维升级

    身处职场之中,太多话题相围绕,"个人成长"."管理"或许是讨论的最多的了. 但"个人成长"和"管理"却是大不相同的两件事 ...

  10. Dokcer运行Nacos容器自动退出问题

    Dokcer运行Nacos容器自动退出问题 参考博文 学生党,租的云服务器,2核2G.使用Docker运行Nacos容器的时候发现总是自动退出.Nacos日志里面没有明显的报错信息.查了一下是内存溢出 ...