Windows下编译jcef
依賴軟件參考
本文參考官方網(wǎng)站上的jcef編譯過程
編譯成功的環(huán)境如下:
- windows 10 64 bit
- JDK 1.8.0_121 64 bit
- Python 2.7.13
- git version 2.12.1.windows.1
- cmake version 3.12.0-rc1
- Visual Studio 2015 Enterprise Edition
以上的軟件也是官網(wǎng)上要求安裝的軟件,不過版本稍有不同,官網(wǎng)上的版本要求如下:
- CMake version 2.8.12.2 or newer.
- Git.
- Java version 1.7 or 1.8.
- Python version 2.6 or newer in the 2.x series (3.x is not supported)
VS官方是建議使用2015版本。
另外在64位機(jī)器上編譯,jdk最好裝64位的,由于64位的機(jī)器默認(rèn)編譯64位的依賴,因此,32位jdk找到的依賴會報(bào)錯(cuò),后面會提到出錯(cuò)后的處理
下載jcef源代碼
h@DESKTOP-8K18HPL MINGW64 ~ $ cd /d/learn/jecf/ ? h@DESKTOP-8K18HPL MINGW64 /d/learn/jecf $ git clone https://bitbucket.org/chromiumembedded/java-cef.git src Cloning into 'src'… remote: Counting objects: 3710, done. remote: Compressing objects: 100% (1758/1758), done. remote: Total 3710 (delta 2461), reused 2576 (delta 1682) Receiving objects: 100% (3710/3710), 27.49 MiB | 68.00 KiB/s, done. Resolving deltas: 100% (2461/2461), done. ? h@DESKTOP-8K18HPL MINGW64 /d/learn/jecf $執(zhí)行make
到了這一步就雖然可以執(zhí)行make了,make過程有個(gè)問題make是需要從Google Storage 下載 clang-format,這個(gè)步驟執(zhí)行一次即可;國內(nèi)的用戶需要設(shè)置代理才可以,不然會停留在 -- Downloading clang-format from Google Storage... 這一步 輸出如下:
-- Found PythonInterp: D:/Python27/python.exe (found version "2.7.13") -- Found JNI: C:/jdk1.8.0_121_x86/lib/jawt.lib (Required is at least version "1.7") -- Generating native/jcef_version.h file… File native/jcef_version.h is already up to date. -- Downloading clang-format from Google Storage…執(zhí)行make 前,設(shè)置cmd代理:
set http_proxy=http://{ip}:{port} set https_proxy=http://{ip}:{port}執(zhí)行make,參考下面官網(wǎng)提供的make流程命令
# Enter the JCEF source code directory. cd /path/to/java-cef/src ? # Create and enter the `jcef_build` directory. # The `jcef_build` directory name is required by other JCEF tooling # and should not be changed. mkdir jcef_build && cd jcef_build ? # Linux: Generate 64-bit Unix Makefiles. cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release .. # Build using Make. make -j4 ? # Mac OS X: Generate 64-bit Xcode project files. cmake -G "Xcode" -DPROJECT_ARCH="x86_64" .. # Open jcef.xcodeproj in Xcode # - Select Scheme > Edit Scheme and change the "Build Configuration" to "Release" # - Select Product > Build. ? # Windows: Generate 64-bit VS2015 project files. cmake -G "Visual Studio 14 Win64" .. # 32 bit # cmake -G "Visual Studio 14" .. # Open jcef.sln in Visual Studio # - Select Build > Configuration Manager and change the "Active solution configuration" to "Release" # - Select Build > Build Solution.若這個(gè)步驟出現(xiàn)JDK依賴錯(cuò)誤,通常是使用64 bit 的機(jī)器上使用32 bit的JDK,make的時(shí)候,看最后的輸出,
-- Java directory: C:/jdk1.8.0_121_x86 -- JNI libraries: C:/jdk1.8.0_121_x86/lib/jawt.lib;C:/jdk1.8.0_121_x86/lib/jvm.lib -- JNI include directories: C:/jdk1.8.0_121_x86/include;C:/jdk1.8.0_121_x86/include/win32;C:/jdk1.8.0_121_x86/include -- Configuring done -- Generating done上面的輸出可以看到,Java directory和JNI libraries 選擇了32位的JDK的路徑,重新安裝JDK和配置了64 bit JDK到環(huán)境變量中,刪除jcef build 中的所有文件,重新執(zhí)行make 步驟即可。
執(zhí)行完成后輸入如下:
-- Configuring done -- Generating done -- Build files have been written to: D:/learn/jecf/src/jcef_build?
編譯cef 依賴的dll
由于JCEF是java對CEF的封裝,因此還是需要依賴CEF的,CEF及相關(guān)的bridge編譯使用VS來完成的。
進(jìn)入jcef_build目錄,打開jcef.sln
將解決方案的項(xiàng)目配置由 debug 改成release ,然后直接生成,生產(chǎn)成功后,輸出如下:
?
編譯java 代碼
執(zhí)行compile.bat win64
32 bit 執(zhí)行 compile.bat win32
編譯后的測試
執(zhí)行run.bat win64 Release detailed
32 bit 執(zhí)行 run.bat win32 Release detailed
得到一個(gè)嵌入了瀏覽器的AWT界面的java應(yīng)用,在地址欄輸入https://html5test.com/,可以看到得到的分?jǐn)?shù)基本與安裝的Chrome一致
若VS沒有修改項(xiàng)目配置為release,執(zhí)行時(shí)候報(bào)Release 路徑?jīng)]有找到
編譯后分發(fā)
執(zhí)行 make_distrib.bat win64
32 bit 執(zhí)行 make_distrib.bat win32
若VS沒有修改項(xiàng)目配置為release,同樣執(zhí)行時(shí)候報(bào)Release 路徑?jīng)]有找到
分發(fā)后測試
若執(zhí)行成功,在src目錄下會增加一個(gè)binary_distrib的文件夾,里面就是打包好的分發(fā)的文件了。
進(jìn)入binary_distrib執(zhí)行run.bat,運(yùn)行得到與編譯后的測試一致的應(yīng)用;
至此,編譯jcef的過程結(jié)束
轉(zhuǎn)載于:https://www.cnblogs.com/JpgCode/p/9397166.html
總結(jié)
以上是生活随笔為你收集整理的Windows下编译jcef的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx--阿里云--success
- 下一篇: 微信小程序知识点梳理