Wiki
Clone wikijava-cef / 编译V49到XP环境中运行
本例讲解如何将v49编译为32位程序到XP下测试运行
忘了之前给过32位cef下载链接没有,这里加上。 cefpart1 cefpart2
下文中说的需要VC2013运行时其实是不用的,因为cef内核与jcef_helper是完全跨平台并且无第三方依赖的,也就是不需要安装vcredist**.exe或者打包msvc*120.dll
* 不再支持xp的原因
1. 新的PE格式
对于cef架构而言,它是多进程的,例如谷歌浏览器会有多个chrome.exe,360浏览器会有多个360se.exe。java-cef会有一个java(w).exe和多个jcef_helper.exe。
Windows Vista之后exe文件格式与XP不一样了。如果运行,则会出现如下图的结果
在命令行运行则会提示Failed to launch child process
而Visual Studio 2013生成的exe默认是Vista之后的格式(dll是兼容的),我们这篇文章整个核心就是解决这个问题。
2. 新的API
v49之后的版本对于操作系统API都不支持xp了,如下图
* 编译过程
1. 安装32位的JDK
因为编译c/c++程序区分32和64位,编译java-cef的c++部分时需要用到jdk里面的lib,这个区分位数。
如果你懂c/c++的编译链接,就可以直接将32位的jawt.lib和jvm.lib路径替换jcef项目的对应路径即可。不懂就卸了64位装32的
jdk7u80win32part1 jdk7u80win32part2
2. 设置jcef_helper兼容XP
话不多说直接上图,大家一看就懂
在cmake这一步呢跟win64不一样的就是不加win64关键字,默认就是32位
请大家务必注意我鼠标着重标注的几个地方,有时候你会发现你设置的是Debug,而想要的Release。
3. 需要VCR
由于程序是用vs2013编译出来的,需要基础类库(一些dll)。
4. 编译32位java
这个纯属扯淡,因为java不分32位64位,但是你用compile.bat传递的参数不同,生成的文件夹不同。
5. 放到XP里面运行
All you need is 下面的东西
安装jre即可。然后就可以用命令行运行。
Updated