Wiki
Clone wikijava-cef / 编译V49为Windows平台
注意:
为了描述详尽,下方图片很多,请注意流量或CPU使用率。
另外由于markdown的特性,超链接都在本页打开,请右键新标签页打开。
本文中的示例使用win64平台,定然无法用于xp,但当您使用32位jdk并使用32位cef编译出32位jni时,即可用于XP
* 准备环境
1. 安装git
Git是一个版本控制工具,管理源代码的。
大家可以从我托管在csdn的文件地址下载git
我们使用Git来下载java-cef源代码,安装时注意将git加入环境变量(maybe不是必须的)。
2. 安装CMake
CMake是一个编译脚本生成工具,可以把JNI代码的编译任务打包成一个VS2013解决方案,导入VS2013进行编译。
大家可以从我托管在csdn的文件地址下载cmake
安装时注意将cmake加入环境变量(后续使用更为方便)。
3. 安装Python
Python在我的理解中就是搅屎棍(或者说润滑剂吧),到处都用它,但是似乎都没有它独当一面的时候。
需要使用2.X的版本,大家可以从我托管在csdn上的地址下载安装程序python-2.7.11
在编译时会有Python脚本被执行,所以需要安装,并加入环境变量。
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进行下载
2. 获取cef发行版
cef发行版是由JNI调用的,另外包含JNI部分编译需要的头文件和库文件。
从java-cef / third_party / cef / README.jcef中可以知道我们需要的版本是3.2623.1395.g3034273。
因此我们去到cefbuilds.com进行下载
(下载需要翻墙)大家也可以从我托管在csdn的文件地址进行下载:win64part1 win64part2 win32part1 win32part2
* 编译源码
1. 放置cef代码
将cef代码解压到java-cef / third_party / cef文件夹下,根据README.jcef中描述,不同操作系统的文件需要不同文件夹命名。
下文示例我使用win64平台进行示例,注意文件夹不要多出一级哦,win64下就直接是cefclient等,别多出一级cef_???。
2. 使用cmake生成vs项目
使用cmake生成一个jni编译的vs解决方案(项目),随后使用vs进行编译。
流程为:进入java-cef文件夹下,创建jcef_build文件夹,将解决方案放到这里。
3. 使用Visual Studio编译JNI部分
直接双击打开java-cef / jcef_build / jcef.sln,在vs里编译。
选择Release。注意左下角的进度,加载文件完成后有“就绪”两字。
待文件加载就绪,生成解决方案。
出现以下输出则代表build完成,可以关闭vs了。
4. 编译Java代码
使用java-cef / tools / compile.bat编译Java代码。
* 测试运行
使用java-cef / tools / run.bat即可测试运行。
测试用例打开的是google,访问不了,我们输入百度的网址进行测试。
我已经编译并打包了一个版本放入maven(暂时仅windows操作系统),使用如下代码添加到您的maven项目中。这样您就不需要自己重新编译打包了,而且我的代码修复了一些已知bug(没有提交到bitbucket哦),建议大家直接使用。
win32
#!xml <dependency> <groupId>org.bitbucket.johness</groupId> <artifactId>java-cef</artifactId> <version>49.87.win32.2</version> </dependency>
#!xml <dependency> <groupId>org.bitbucket.johness</groupId> <artifactId>java-cef</artifactId> <version>49.87.win64.2</version> </dependency>
Updated