Clone wiki

java-cef / 编译V49为Windows平台

注意:

为了描述详尽,下方图片很多,请注意流量或CPU使用率。

另外由于markdown的特性,超链接都在本页打开,请右键新标签页打开。

本文中的示例使用win64平台,定然无法用于xp,但当您使用32位jdk并使用32位cef编译出32位jni时,即可用于XP


* 准备环境

1. 安装git

Git是一个版本控制工具,管理源代码的。

大家可以从我托管在csdn的文件地址下载git

我们使用Git来下载java-cef源代码,安装时注意将git加入环境变量(maybe不是必须的)。

installgit.gif

2. 安装CMake

CMake是一个编译脚本生成工具,可以把JNI代码的编译任务打包成一个VS2013解决方案,导入VS2013进行编译。

大家可以从我托管在csdn的文件地址下载cmake

安装时注意将cmake加入环境变量(后续使用更为方便)。

installcmake.gif

3. 安装Python

Python在我的理解中就是搅屎棍(或者说润滑剂吧),到处都用它,但是似乎都没有它独当一面的时候。

需要使用2.X的版本,大家可以从我托管在csdn上的地址下载安装程序python-2.7.11

在编译时会有Python脚本被执行,所以需要安装,并加入环境变量。

installpython.gif

4. 安装JDK

JDK不用我多说,编译Java类生成字节码所需,值得一提的是java-cef代码最低支持jdk7,而XP最多支持java7。

因此我们使用jdk7u80(jdk7最后一个版本)来编译发行我们的程序。

我在csdn上托管了jdk7u80,如果大家去oracle下载需要登录,因此可以使用我托管的版本。 part1 part2 part3 win32part1 win32part2

作为Java开发人员,JAVA_HOME的设置我就不再赘述!

5. 安装Visual Studio

Visual Studio用于编译JNI,必须为2013版本。

我使用Microsoft Visual Studio Express 2013 for Windows Desktop with Update 5,可以从我托管到csdn上的文件地址下载 vcexpress

* 获取源码

1. 获取java-cef源码

源码使用git进行版本控制,地址为,https://bitbucket.org/Johness/java-cef.git,分支为v49。

因此需要使用git clone -b v49 https://bitbucket.org/Johness/java-cef.git进行下载

gitclonev49.gif

2. 获取cef发行版

cef发行版是由JNI调用的,另外包含JNI部分编译需要的头文件和库文件。

从java-cef / third_party / cef / README.jcef中可以知道我们需要的版本是3.2623.1395.g3034273。

因此我们去到cefbuilds.com进行下载

findcefbuilds.gif

(下载需要翻墙)大家也可以从我托管在csdn的文件地址进行下载:win64part1 win64part2 win32part1 win32part2

* 编译源码

1. 放置cef代码

将cef代码解压到java-cef / third_party / cef文件夹下,根据README.jcef中描述,不同操作系统的文件需要不同文件夹命名。

下文示例我使用win64平台进行示例,注意文件夹不要多出一级哦,win64下就直接是cefclient等,别多出一级cef_???。

placecef.gif

2. 使用cmake生成vs项目

使用cmake生成一个jni编译的vs解决方案(项目),随后使用vs进行编译。

流程为:进入java-cef文件夹下,创建jcef_build文件夹,将解决方案放到这里。

cmakesln.gif

3. 使用Visual Studio编译JNI部分

直接双击打开java-cef / jcef_build / jcef.sln,在vs里编译。

选择Release。注意左下角的进度,加载文件完成后有“就绪”两字。

selectrelease.gif

待文件加载就绪,生成解决方案。

buildsln.gif

出现以下输出则代表build完成,可以关闭vs了。

buildcomplete.png

4. 编译Java代码

使用java-cef / tools / compile.bat编译Java代码。

buildjava.gif

* 测试运行

使用java-cef / tools / run.bat即可测试运行。

测试用例打开的是google,访问不了,我们输入百度的网址进行测试。

testrun.gif


我已经编译并打包了一个版本放入maven(暂时仅windows操作系统),使用如下代码添加到您的maven项目中。这样您就不需要自己重新编译打包了,而且我的代码修复了一些已知bug(没有提交到bitbucket哦),建议大家直接使用。

win32

<dependency>
  <groupId>org.bitbucket.johness</groupId>
  <artifactId>java-cef</artifactId>
  <version>49.87.win32.2</version>
</dependency>

win64

<dependency>
  <groupId>org.bitbucket.johness</groupId>
  <artifactId>java-cef</artifactId>
  <version>49.87.win64.2</version>
</dependency>

Updated