背景:
检索到的相关文章,很多都是官网的翻译,有的是自己的心路历程,我也记录下自己的心路历程.这里着重记录自己理解和跟随官网时遇到的问题.
cef:cef官网 个人理解:就是把chrome的内核提取出来给其他应用使用,.浏览器只是其的一种应用展示而已.虽然它来自浏览器
cef:源码下载:cef源码下载
jcef:jcef官网 用java代码对cef进行一层封装.
我不吐槽:虽然这三个官网都是直接可以访问的.jcef可以通过git下载 当然很慢.我把git的timeout设置成了3000s 但是重要的cef源码下载.却需要翻墙到美国(台湾也不行)
构建(编译JCEF):
网上流传着两种,大体相同,只是建议的构建工具不同:
1.通过GYP构建.这里我分享下 我同事给我的编译说明流程(谢谢黄冠同事)
编译JCEF3.1750版
一、配置环境:(注意安装路径中不要有空格和特殊符号及中文,避免不要的麻烦)
1.安装Visual Studio 2013
2.安装JAVA JDK 1.7.0.72
3.安装python 2.6~2.7 配置好环境变量到python根目录(不能用3.0版)
4.安装GYP 配置好环境变量到GYP根目录【git库地址:https://chromium.googlesource.com/external/gyp】
5.下载cef地址:https://cefbuilds.com/#branch_1750【下载版本Windows 32bit CEF 3.1750.1805 (53MB)】(另外附上cef的git库地址:https://bitbucket.org/chromiumembedded/cef.git我们编译jcef不需要拿git库上的cef源码)
6.下载jcef源码,git库地址:https://bitbucket.org/chromiumembedded/java-cef.git (下载后将本地库Reset到f69ddc7:“Update to CEF version 3.1750.1738.”)
二、编译流程:
1.将下载好的cef目录下内容全部复制到jcef根目录下的“third_party\cef\win32”目录中。
2.打开cmd控制台cd到jcef源码的根路径下我的路径是“java-cef\src”。
3.输入指令:
set GYP_GENERATORS=msvs
set GYP_DEFINES=jcef_platform=win32 jdk_directory="C:\Program Files (x86)\Java\jdk1.7.0_72"
(jdk_directory改成java实际的目录)
4.接着执行指令:
gyp --depth=. jcef.gyp
5.到此jcef.sln文件生成完毕,可以通过vs2013打开并编译成jcef.dll及jcef_helper.exe了。
这里需要注意几点:
1.需要先安装python再在安装gyp. 因为安装后者需要前者命令. 这也是要把python安装目录放到环境变量中的原因. (安装python有设置环境变量的选项)
2.如果python版本很新的话 安装gyp时,需要先下载ez_setup.py
3.如果
你计划使用的jcef是在这次更新之后那就麻烦了 (上面提供的编译流程是在这之前). 因为src的目录没有了. 幸运的是jcef.gyp还是存在的是指放在了根目录. (你是否感受到了作者对于gyp方式的恶意)
然后在4个月之后,GYP 被抛弃,CMake被启用支持. 至于为什么要换? who know? 问作者吧. CMake估计比GYP更好用 更跨平台
结果就是 如果你想要使用这个节点之后的jcef源码 请抛弃gyp的方式.换cmake.这也是第二种编译方法.官方提供的方式
3.Cmake方式编译
官方方式:官方编译jcef的说明流程和上面的官网是一个地方.放弃了GYP用了CMake 代码的话通过git下载. 你可以通过Eclipse的git视图操作获取jcef的源码,也可以通过window下安装git来试下. 单个人建议使用前者.因为jcef版本存在和cef版本匹配的情况. 通过git视图调整源码要比命令行方便.
笔者下载cef:cef_binary_3.2556.1368.g535c4fb win32和为win64 jcef版本是 8dce678 Update to CEF version 3.2623.1395.g3034273 当然我更建议对应,
正如官网的建议2. Read the third_party\cef\README.jcef file to determine the required CEF3 release branch. Download the specified build of this branch fromhttp://cefbuilds.com.
但还不错,两个都是最新版 兼容了.
注意:在构建完jcef_build目录后,通过cmake的命令创建jcef.sln. 编译64位 VS版本为 "Visual Studio 14 Win64" 编译32位 VS版本为"Visual Studio 14 2015" 编译32位让我困惑了很久.原因是:他给出的参数提示:
提示: Win64 or ARM 实际也可以为空的 即[] 是可以为空的参数 也是我对于window下 参数提示不敏感.
发现这个主要是这篇博客提供的支持,注意CMake的截图: 一起学libcef
至此jcef.dll 和 jcef_helper.exe编译完成