java-cef / 编译V49为Windows平台

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

转自https://bitbucket.org/Johness/java-cef/wiki/编译V49为Windows平台

no chrome_elf in java.library.path: [C:\Program Files\Java\jdk-11.0.11\bin, C:\WINDOWS\Sun\Java\bin, C:\WINDOWS\system32, C:\WINDOWS, C:\Python39\Scripts\, C:\Python39\, C:\Program Files\Common Files\Oracle\Java\javapath, C:\Program Files (x86)\Common Files\Oracle\Java\javapath, C:\windows\system32, C:\windows, C:\windows\System32\Wbem, C:\windows\System32\WindowsPowerShell\v1.0\, C:\windows\System32\OpenSSH\, C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common, C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR, C:\Program Files\Java\jdk1.8.0_291\bin, C:\Program Files\Git\cmd, C:\Program Files (x86)\NetSarang\Xftp 7\, C:\Program Files\Docker\Docker\resources\bin, C:\ProgramData\DockerDesktop\version-bin, C:\Program Files\nodejs\, C:\ProgramData\chocolatey\bin, C:\Users\shenshen\AppData\Roaming\npm\node_modules\cnpm\bin, C:\Program Files\IntelliJ IDEA 2021.1\plugins\maven\lib\maven3\bin, C:\Program Files\dotnet\, C:\Program Files (x86)\WinMerge, C:\Program Files (x86)\NetSarang\Xshell 7\, C:\WINDOWS\system32, C:\WINDOWS, C:\WINDOWS\System32\Wbem, C:\WINDOWS\System32\WindowsPowerShell\v1.0\, C:\WINDOWS\System32\OpenSSH\, D:\微信web开发者工具\dll, D:\TortoiseGit\bin, C:\Gradle\gradle-4.10.1\bin, C:\Windows\System32\, C:\ProgramData\Eastmoney\Choice\ExcelAddinSSL, D:\xshell\, C:\Program Files\MySQL\MySQL Shell 8.0\bin\, C:\Users\shenshen\AppData\Local\Microsoft\WindowsApps, C:\Program Files\IntelliJ IDEA 2021.1\bin, ., C:\Program Files\erl-24.0\bin, C:\Users\shenshen\AppData\Roaming\npm, C:\Users\shenshen\AppData\Local\Programs\Microsoft VS Code\bin, ., .] at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2660) at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:827) at java.base/java.lang.System.loadLibrary(System.java:1871) at org.cef.SystemBootstrap$1.loadLibrary(SystemBootstrap.java:26) at org.cef.SystemBootstrap.loadLibrary(SystemBootstrap.java:38) at org.cef.CefApp.<init>(CefApp.java:151) at org.cef.CefApp.getInstance(CefApp.java:227) at org.cef.CefApp.getInstance(CefApp.java:214) at EmbeddedBrowser.main(EmbeddedBrowser.java:13)
最新发布
07-08
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值