依赖软件参考

本文参考官方网站上的jcef编译过程
编译成功的环境如下:

  • windows 10 64 bit
  • JDK 1.8.0_121 64 bit
  • Python 2.7.13
  • git version 2.12.1.windows.1
  • cmake version 3.12.0-rc1
  • Visual Studio 2015 Enterprise Edition

以上的软件也是官网上要求安装的软件,不过版本稍有不同,官网上的版本要求如下:

  • CMake version 2.8.12.2 or newer.
  • Git.
  • Java version 1.7 or 1.8.
  • Python version 2.6 or newer in the 2.x series (3.x is not supported)

VS官方是建议使用2015版本。

另外在64位机器上编译,jdk最好装64位的,由于64位的机器默认编译64位的依赖,因此,32位jdk找到的依赖会报错,后面会提到出错后的处理

下载jcef源代码

h@DESKTOP-8K18HPL MINGW64 ~$ cd/d/learn/jecf/​
h@DESKTOP-8K18HPL MINGW64 /d/learn/jecf
$ git clone https://bitbucket.org/chromiumembedded/java-cef.git src
Cloning into 'src'…
remote: Counting objects:3710, done.
remote: Compressing objects:100% (1758/1758), done.
remote: Total3710 (delta 2461), reused 2576 (delta 1682)
Receiving objects:100% (3710/3710), 27.49 MiB | 68.00 KiB/s, done.
Resolving deltas:100% (2461/2461), done.
​
h@DESKTOP-8K18HPL MINGW64 /d/learn/jecf
$

执行make

到了这一步就虽然可以执行make了,make过程有个问题make是需要从Google Storage 下载 clang-format,这个步骤执行一次即可;国内的用户需要设置代理才可以,不然会停留在 -- Downloading clang-format from Google Storage... 这一步 输出如下:

-- Found PythonInterp: D:/Python27/python.exe (found version "2.7.13")-- Found JNI: C:/jdk1.8.0_121_x86/lib/jawt.lib (Required is at least version "1.7")-- Generating native/jcef_version.h file…
Filenative/jcef_version.h is already up to date.-- Downloading clang-format from Google Storage…

执行make 前,设置cmd代理:

set http_proxy=http://{ip}:{port}
set https_proxy=http://{ip}:{port}

执行make,参考下面官网提供的make流程命令

# Enter the JCEF source code directory.
cd/path/to/java-cef/src
​
# Create and enter the `jcef_build` directory.
# The `jcef_build` directory name is required by other JCEF tooling
# and should not be changed.
mkdir jcef_build&&cd jcef_build
​
# Linux: Generate64-bit Unix Makefiles.
cmake-G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..
# Build using Make.
make-j4
​
# Mac OS X: Generate64-bit Xcode project files.
cmake-G "Xcode" -DPROJECT_ARCH="x86_64"..
# Open jcef.xcodeproj in Xcode
#- Select Scheme > Edit Scheme and change the "Build Configuration" to "Release"#- Select Product >Build.
​
# Windows: Generate64-bit VS2015 project files.
cmake-G "Visual Studio 14 Win64"..
#32bit
# cmake-G "Visual Studio 14"..
# Open jcef.sln in Visual Studio
#- Select Build > Configuration Manager and change the "Active solution configuration" to "Release"#- Select Build > Build Solution.

若这个步骤出现JDK依赖错误,通常是使用64 bit 的机器上使用32 bit的JDK,make的时候,看最后的输出,

-- Java directory:               C:/jdk1.8.0_121_x86
-- JNI libraries:                C:/jdk1.8.0_121_x86/lib/jawt.lib;C:/jdk1.8.0_121_x86/lib/jvm.lib
-- JNI include directories:      C:/jdk1.8.0_121_x86/include;C:/jdk1.8.0_121_x86/include/win32;C:/jdk1.8.0_121_x86/include
-- Configuring done
-- Generating done

上面的输出可以看到,Java directory和JNI libraries 选择了32位的JDK的路径,重新安装JDK和配置了64 bit JDK到环境变量中,删除jcef build 中的所有文件,重新执行make 步骤即可。

执行完成后输入如下:

--Configuring done--Generating done-- Build files have been written to: D:/learn/jecf/src/jcef_build

编译cef 依赖的dll

由于JCEF是java对CEF的封装,因此还是需要依赖CEF的,CEF及相关的bridge编译使用VS来完成的。
进入jcef_build目录,打开jcef.sln
将解决方案的项目配置由 debug 改成release ,然后直接生成,生产成功后,输出如下:

5>------ 已跳过生成: 项目: ALL_BUILD, 配置: Debug x64 ------
5>没有为此解决方案配置选中要生成的项目========== 生成: 成功 4 个,失败 0 个,最新 0 个,跳过 1 个 ==========

编译java 代码

执行compile.bat win64
32 bit 执行 compile.bat win32

D:\learn\jecf\src\tools>compile.bat win64
D:\learn\jecf\src\java\tests\detailed\handler\binding_test.html->D:\learn\jecf\src\out\win64\tests\detailed\handler\binding_test.html
D:\learn\jecf\src\java\tests\detailed\handler\binding_test2.html->D:\learn\jecf\src\out\win64\tests\detailed\handler\binding_test2.html
D:\learn\jecf\src\java\tests\detailed\handler\localstorage.html->D:\learn\jecf\src\out\win64\tests\detailed\handler\localstorage.html
D:\learn\jecf\src\java\tests\detailed\handler\spellcheck.html->D:\learn\jecf\src\out\win64\tests\detailed\handler\spellcheck.html
D:\learn\jecf\src\java\tests\detailed\handler\transparency.html->D:\learn\jecf\src\out\win64\tests\detailed\handler\transparency.html
复制了5个文件
D:\learn\jecf\src\java\tests\detailed\handler\logo.png->D:\learn\jecf\src\out\win64\tests\detailed\handler\logo.png
复制了1个文件
​
D:\learn\jecf\src\tools>run.bat win64 Release detailed
ERROR: Native build output path does not exist
​
D:\learn\jecf\src\tools>

编译后的测试

执行run.bat win64 Release detailed
32 bit 执行 run.bat win32 Release detailed
得到一个嵌入了浏览器的AWT界面的java应用,在地址栏输入https://html5test.com/,可以看到得到的分数基本与安装的Chrome一致

若VS没有修改项目配置为release,执行时候报Release 路径没有找到

编译后分发

执行 make_distrib.bat win64
32 bit 执行 make_distrib.bat win32

D:\learn\jecf\src\tools>make_distrib.bat win64
ERROR: Native Release build output path does not exist

若VS没有修改项目配置为release,同样执行时候报Release 路径没有找到

分发后测试

若执行成功,在src目录下会增加一个binary_distrib的文件夹,里面就是打包好的分发的文件了。

进入binary_distrib执行run.bat,运行得到与编译后的测试一致的应用;

至此,编译jcef的过程结束

转载于:https://www.cnblogs.com/JpgCode/p/9397166.html

Windows下编译jcef相关推荐

  1. Windows下编译Chrome V8

    主要还是参考google的官方文档: How to Download and Build V8 Building on Windows 同时也参考了一些其它的中文博客: 脚本引擎小pk:SpiderM ...

  2. Windows下编译 Hadoop

    Windows下编译 Hadoop-2.9.2 系统环境 系统: Windows 10 10.0_x64 maven: Apache Maven 3.6.0 jdk: jdk_1.8.0_201 Pr ...

  3. Windows下编译tensorflow-gpu教程

    这两个也要看: https://zhuanlan.zhihu.com/p/29029860 https://zhuanlan.zhihu.com/p/34942873 Windows下编译tensor ...

  4. Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序

    参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...

  5. windows下编译支持https的curl

    先编译好openssl,过程详见:<windows下编译openssl> 编译好zlib,过程详见<windows下编译zlib> 1. 下载curl 官网:https://c ...

  6. 在Windows下编译FFmpeg详细说明

    在Windows下编译FFmpeg详细说明 MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 Mi ...

  7. linux下find查找带有指定权限的文件(windows下编译的源代码文件)

    find -type f -perm -o=x 查找用户在windows下编译的源代码文件 转载于:https://blog.51cto.com/axlrose/1357610

  8. lua windows下编译

    从Lua5.1开始官方给出的文件只有源代码和makefile文件了,官网给出的bulid方式也是在linux平台,如果只是想找个库使用下可以到这里来下载:http://joedf.ahkscript. ...

  9. 在windows下编译FFMPEG-最新2009版本

    转]在windows下编译FFMPEG-最新2009版本 2010-11-17 18:50 大家可以看到,此篇之前有很多个版本的"在windows下编译FFMPEG",那些都是我在 ...

最新文章

  1. 求生之路 l4d linux,求生之路开服过程(基于ubuntu)
  2. 重新认识HBase,Cassandra列存储——本质是还是行存储,只是可以动态改变列(每行对应的数据字段)数量而已,当心不是parquet...
  3. Arp协议和Arp欺骗
  4. JavaScript实现将位转换为浮点数bitsToFloat算法(附完整源码)
  5. boost::safe_numerics::safe_signed_range相关的测试程序
  6. linux npm环境变量,linux配置npm环境变量
  7. wsld2java axis_Weblogic+axis2安装
  8. vue+mintUI搭建移动端新闻类网站
  9. spingboot整合netty实现单聊整合实现
  10. ORA-28002:密码过期时的处理…………
  11. 在Oracle中写出性能优良的SQL语句
  12. 无法拒绝APP测试的理由,如果你还不知道,是我的错!
  13. 简述python3默认使用的编码标准_Python3.X默认使用的编码是
  14. SQLServer如何取得随机获取的数据库记录
  15. php过滤多空格_php如何去除多余空格
  16. UniWebView使用总结
  17. [渝粤教育] 西南科技大学 财务会计 在线考试复习资料(3)
  18. hp服务器修改bios做系统,hp 服务器bios设置
  19. flv网页播放器开源代码
  20. ubuntu的初始密码

热门文章

  1. 《C语言课程设计》一3.1 文件复制
  2. Java中的门面设计模式,非常有用!
  3. 不吹牛,这样的面试官才牛逼!
  4. Redis 如何保持和 MySQL 数据一致
  5. MYSQL:约束?添加约束?删除约束?以及一些其他修饰?
  6. 地铁闸门会夹伤人吗_男子被夹地铁屏蔽门与列车之间,现场画面太惊险!
  7. 打开计算机硬盘有声音,开机时硬盘会发出声音了,怎么办
  8. 数据中心水环热泵余热回收系统分析与应用
  9. 上海:加快推进18个新建数据中心项目的建设和投资进度
  10. 机房的未来趋势,互联网数据中心(IDC)行业前景图