1 编译过程

1.1 开发工具

     Git-2.13.2-64-bit

 

     cmake-3.9.0-rc5-win64-x64

 

     python-2.7.13.amd64

 

     jdk1.7.0_75

 

     vs2015

 

     各开发工具从网上搜索下载,安装git, cmake, python , 如果安装软件支持选择添加环境变量,要选上。

 

     没有的话,手工添加环境变量 。

 

java-cef编译过程

 

 

 

  java-cef编译过程

 

 

  Visual Studio 安装过程注意把 window sdk 8.1 勾选上。

 

1.2  命令行编译

 

      在D 盘建立目录  java-cef,进入。

      

      cd java-cef

 

      git clone https://bitbucket.org/chromiumembedded/java-cef.git src

 

      cd  src

 

      mkdir jcef_build && cd jcef_build

 

      cmake -G "Visual Studio 14 Win64" ..

 

      注意如果是32位,使用命令为  cmake -G "Visual Studio 14" ..

 

     java-cef编译过程

 

  使用了一些代理工具,有访问权限后, 如下:

 

  java-cef编译过程

      

 java-cef编译过程

java-cef编译过程

 

有可能会因为网络原因出现上边的下载错误,把gs://chromium-clang-format/6ddedd571c56b8c184f30a3c1fc36984e8c10ccd改为https://storage.googleapis.com/chromium-clang-format/6ddedd571c56b8c184f30a3c1fc36984e8c10ccd,然后浏览器下载,下载完成后再把文件名改为clang-format.exe放到D:\java-cef\src\tools\buildtools\win目录即可。

 

注意,如果是32位编译,使用32位jdk。  通过修改系统环境变量中的 java_home。

1.3 vs 生成解决方案

     打开 jcef.sln ,  生成解决方案,如下图:

 

    java-cef编译过程

 

 

1.4 java编译测试

   编译执行以下命令

 

   cd java-cef\src\tools

 

   compile.bat win64

  

java-cef编译过程

 

测试执行以下命令:

 

  run.bat win64 Release detailedjava-cef编译过程

 

java-cef编译过程

 

1.5 打开调试工具

   在测试例子中有个菜单 show DevTools ,点击。

 

java-cef编译过程

 

java-cef编译过程

 

1.6 打包

    cd java-cef\src\tools

 

    make_distrib.bat win64

如果 32位,那么修改为      make_distrib.bat win32

java-cef编译过程

 

java-cef编译过程

 1.7 Eclipse运行

   把目录 D:\java-cef\src\binary_distrib\win64\bin 下的 jar 复制到 eclipse java项目工程中 lib中,并且添加类路径中。

 

  把 D:\java-cef\src\binary_distrib\win64\bin\lib\win64目录复制到工程某目录中, 调试运行的时候,加上 Djava.library.path 指定目录,比如复制到 browser下,那么配置为 -Djava.library.path=browser/win64

 

  java-cef编译过程

1.8   SWT 嵌入

 不仅支持  awt 、 swing ,同时也可以在 SWT上潜入。 代码如下:

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Frame;


import org.cef.CefApp;
import org.cef.CefClient;
import org.cef.CefSettings;
import org.cef.browser.CefBrowser;
import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;


public class SwtFrame {


public static void main(String[] args) {


final Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
Composite locationComp = new Composite(shell, SWT.EMBEDDED);
Frame frame = SWT_AWT.new_Frame(locationComp);


CefSettings settings = new CefSettings();
settings.windowless_rendering_enabled = false;
CefApp cefApp_ = CefApp.getInstance(settings);
CefClient client = cefApp_.createClient();
CefBrowser browser = client.createBrowser("http://www.baidu.com", false, false);
Component uiComponent = browser.getUIComponent();


frame.setLayout(new BorderLayout());
frame.add(uiComponent, BorderLayout.CENTER);


shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}


}

 1.9 警告为错误

java-cef编译过程

相关文章: