java 内嵌chrome_[Java教程]Jcef内嵌浏览器windows版本的编译及使用

这篇博客介绍了如何在Windows上编译和使用JavaCEF,一个基于Chrome的内嵌浏览器框架。由于JavaFX的WebView存在性能和稳定性问题,作者选择了JCEF,并详细阐述了从下载源码、使用CMake生成VS工程、编译C++代码、编译Java部分、运行测试到打包的全过程。此外,还提供了一键编译脚本和使用方法。
摘要由CSDN通过智能技术生成

[Java教程]Jcef内嵌浏览器windows版本的编译及使用

0 2017-04-17 12:00:15

背景

去年年底接到的新需求,需要将原来用Swing做的桌面应用中的一个功能做成Web版的,并且要集成到原应用中,换言之就是要使用内嵌浏览器。最开始考虑的是JavaFx提供的WebView,优点是不需要其他第三方库,jdk1.7开始集成。但是开发完成之后发现两个比较严重的问题,一是界面有一个比较复杂的曲线图会严重卡顿,另一个是有几率会导致虚拟机崩溃,并且速度上也不是很让人满意。最后只能考虑换一个内嵌浏览器框架,然后就找到jcef,基于chrome,速度兼容性都很好。

关于jcef就不多作介绍,不了解的可以戳这里java-cef,本文主要讲解jcef的编译过程,由于产品只支持windows平台使用的是32位的jre,所以只编了win32的版本,64位编译过程基本相同,只需要改变下参数。

编译环境CMake 2.8.12.2或者更新的版本(我用的免装版,bin目录要手动配置环境变量)

Git

Visual Studio 2015(官网推荐2015,原因是开发者使用的就是2015版本,实测VS2010和VS2013编译均会报错)

Java 1.8 32位 (官网写的是1.7或者1.8,实际上使用1.7编译java部分会有语法错误,可以修改源码规避,建议使用1.8,编译64位版本使用64位的jdk)

Python 2.6或者更新的版本(不支持Python3)

编译过程

1. 源码下载

使用Git将下载jcef源码,clone地址:https://bitbucket.org/chromiumembedded/java-cef.git,当然也可以直接下载Jcef源码。这里建议使用Git Clone,因为在使用CMake构建的时候需要用到.git目录下面的文件中当前节点的信息来构建jcef_version.h头文件,如果不是git clone的代码,没有git相关的文件编译会出错,这个应该是可以通过修改编译脚本规避,把通过git文件获取的信息写死,没有试过,不细表。

bc91bb04e6e9c61e24c974e4440db8f2.gif

2. CMake构建VS工程

在源码目录下创建新目录jcef_build(不可随意命名),打开DOS进入到新目录中,输入命令cmake -G "Visual Studio 14 2015" ..,回车开始构建。此处有坑,我编的时候新装的VS2015这里报错,找不到编译器,研究了老半天最后找到一句话,VS2015默认安装不包含C++支持……当时整个人都不好了。如果要编64位的话命 令换成这样:cmake -G "Visual Studio 14 Win64" .. 。这里还有一个注意的地方是,这个过程会自动去下载当前Jcef对应的CEF的版本,若果下载不成功可以自己下载之后放到/java-cef/third_party/cef目录中。CEF版本号可以从源码目录下的CMakeLists.txt文件中找到。

bc91bb04e6e9c61e24c974e4440db8f2.gif

CEF下载地址:http://opensource.spotify.com/cefbuilds/index.html  (经常打不开,我FQ才能稳定打开)

bc91bb04e6e9c61e24c974e4440db8f2.gif

CMake构建后的C++项目:

bc91bb04e6e9c61e24c974e4440db8f2.gif

3. VS构建

使用VS打开jcef_build中的jcef.sln文件,选择"生成-->配置管理器-->修改为Release和Win32",然后选择"生成-->生成解决方案",然后等待构建完成。

4. 编译java代码

使用dos进入到源码目录的tools目录里,执行命令compile.bat win32

5. 测试运行

同样是tools目录,执行run.bat win32 Release simple或者run.bat win32 Release detailed,浏览器正常运行,编译成功。

bc91bb04e6e9c61e24c974e4440db8f2.gif

6. 打包

tools目录下执行 make_distrib.bat win32,源码目录下会自动创建打包目录binary_distrib,里面包含了api文档,浏览器Demo,使用到的jar和dll以及资源文件。

使用方法

需要用到的jar: \java-cef\binary_disrib\win32\bin里面的相关jar包

bc91bb04e6e9c61e24c974e4440db8f2.gif

动态库以及资源文件等:\java-cef\binary_disrib\win32\bin\lib\win32里面的所以内容

bc91bb04e6e9c61e24c974e4440db8f2.gif

编码时导入jcef即可编译成功,运行时classpath指定上述jar包,将上面的dll等文件win32目录下的所以内容放在一个目录中,然后将其指定为-Djava.library.path的值即可,可以参考\java-cef\binary_distrib\win32里面的run.bat。

一键编译脚本

build_jcef.bat win32一键编译,脚本是按照可编译64位写的,参数用win64就行了,不过笔者没试过......

bc91bb04e6e9c61e24c974e4440db8f2.gif

bc91bb04e6e9c61e24c974e4440db8f2.gif@echo on@rem 设置路径set SRC_PATH=D:\java-cefset VS_PATH=C:\Develop\VS2015if "%1" == "" (echo ERROR: Please specify a target platform: win32 or win64set ERRORLEVEL=1goto end)cd /d %SRC_PATH%mkdir %SRC_PATH%\jcef_buildcd /d %SRC_PATH%\jcef_build@rem CMake构建cmake -G "Visual Studio 14 2015" ..@rem VS编译@echo VS Building Start%VS_PATH%\Common7\IDE\devenv.exe %SRC_PATH%\jcef_build\jcef.sln /rebuild "Release|%1"@echo VS Building End@rem 编译java部分cd /d %SRC_PATH%\tools call compile.bat %1@rem 打包call make_distrib.bat %1:endExit /B

View Code

结语

从编译到开发,以及解决各种bug,jcef的资料太少,走过不少弯路。不过项目总算是顺利完成交付,这里做个笔记,也分享给需要的人,希望能有所帮助。

本文网址:http://www.shaoqun.com/a/307261.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

Windows

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值