Ubuntu 20.04 LTS+JCEF+CEF 详细编译记录

目录

一、前言

二、安装过程

1.系统准备

2.环境准备

3.开始安装


一、前言

因为项目移植Linux,所以需要在Linux中重新编译JCEF,在网络上也找了很多的资源,没有完全解决编译时的问题,遂将完全安装过程记录,以供大家参考。

二、安装过程

1.系统准备

ubuntu20.04 切换 root用户登录系统(实测有效)

第一步:

以普通用户登录系统,创建root用户的密码

在终端输入命令:

sudo passwd root

然后输入设置的密码,输入两次,这样就完成了设置root用户密码了

第二步:

修改文件sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

在文件末尾增加如下两行:

greeter-show-manual-login=true

all-guest=false

第三步:

修改 /etc/pam.d/gdm-autologin及/etc/pam.d/gdm-password两个文件

sudo gedit /etc/pam.d/gdm-autologin

注释掉auth required pam_succeed_if.so user != root quiet_success这一行(第三行左右)

sudo gedit /etc/pam.d/gdm-password

注释掉 auth required pam_succeed_if.so user != root quiet_success这一行(第三行左右)

第四步:

修改/root/.profile文件

sudo gedit /root/.profile

将文件末尾的mesg n 2> /dev/null || true这一行修改成

tty -s&&mesg n || true

重启系统

vmware-tools安装

cp 虚拟光驱中tar.gz到opt

tar -xzvf ****.tar.gz

./***.pl 安装后重启才生效

2.环境准备

可以先执行sudo apt-get update一下更新源

  • CMake version 2.8.12.2 or newer (apt install cmake)

  • Git.(apt install git)

              

  • Java version 1.7 or newer.( sudo apt-get install openjdk-8-jdk)检查/usr/lib/jvm/java-8-jdk..include下面有没有jawt.h

  • Python version 2.6 or newer in the 2.x series (3.x is not supported) (Python 2.6或2.x系列的更高版本,不支持 3.x 系列)(apt install python)
  • For Linux platforms:(对于 Linux 平台:)

    Currently supported distributions include Debian Wheezy, Ubuntu Precise, and related. Newer versions will likely also work but may not have been tested. Required packages include: build-essential, libgtk2.0-dev.

    (目前支持的发行版包括debian-wheezy、ubuntu-precise和related。较新的版本可能也会工作,但可能尚未测试。必需的包包括:build-essential(后面cmake报错安装后解决),libgtk2.0-dev(已装,没有报错)。)

3.开始安装

  • 使用git下载JCEF源码:

       #The JCEF source code will exist at `/opt/java-cef/src`(自定义路径 )

cd `/opt/java-cef

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

  • 下载成功后打开src/CMakeLists.txt

  • 注释下载(因为在线下载太慢,或者下载不成功,如果能正常下载就不用这两步)

  • 获取cef版本号(81.2.24+gc0b313d+chromium-81.0.4044.113)下载对应的版本放到src/third_party/cef/下面

 cd /opt/java-cef/src

mkdir jcef_build && cd jcef_build 

export JAVA_HOME=/usr/lib/jvm/java-7-oracle(对应jdk安装目录)

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..

问题:

问题:1.

后面CMake时报 No CMAKE_CXX_COMPILER could be found.

Tell CMake where to find the compiler by setting either the environment

variable “CXX” or the CMake cache entry CMAKE_CXX_COMPILER to the full path

to the compiler, or to the compiler name if it is in the PATH.

解决方案:

sudo apt-get update

sudo apt-get install -y build-essential (前面提到两个包,如果这个包装了就不会报错)

此处测试下载最新版本cef,测试(需要修改CMakeLists.txt里的版本号)

问题:2.

解决:配置java_home

1gedit /etc/profile

在末尾添加

 #你的JDK的路径

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

保存退出

退出以后执行 source /etc/profile

重启测试,(不成功)

2.cd ~

gedit .bashrc

在末尾添加

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

export JAVA_HOME

PATH=$PATH:$JAVA_HOME

export PATH

保存退出

退出以后执行 source .bashrc(不成功)

3.重装jdk不成功

4.jawt.h自动安装没有这个文件,选择手动安装jdk1.8

gedit /etc/profile

在末尾添加

 #你的JDK的路径

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

保存退出

退出以后执行 source /etc/profile

失败

5.sudo apt-get install -y openjdk-8-jdk

          sudo apt-get install -y default-jdk

        export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

        失败

6.重装jdk(成功)

                 安装时使用(sudo apt-get install openjdk-8-jdk)安装成功检查/usr/lib/jvm/java-8-openjdk-amd64/include里有没有jawt.h否定还是会报错

  • # Build using Make.

 make -j4 

  • 在windows或者linux上,使用compile.[bat|sh]工具来build JCEF的JAVA classes,在MAC上不需要如下步骤,因为java classes已经被cmake生成

cd /opt/java-cef/src/tools

./compile.sh linux64

  • 测试结果是否正确。(报缺少libjawt.so,找到复制到libjcef.so同目录)使用 run.[bat|sh] 工具来测试JCEF是否工作。

cd /opt/java-cef/src/tools

./run.sh linux64 Release detailed

  • Manual Packaging(手动打包)修改make_distrib.sh

1.增加  cp -f $OUT_BINARY_PATH/libjawt.so $DISTRIB_LIB_PATH

2.注释#    cp -f $OUT_BINARY_PATH/natives_blob.bin $DISTRIB_LIB_PATH

cd /opt/java-cef/src/tools

./make_distrib.sh linux64

# 32 位的命令是

# ./make_distrib.sh linux32

  • 完成

cd /opt/java-cef/src/binary_distrib

  • Xshell连接:

SSH服务器拒绝了密码,请再试一次,亲测有效

试过很多种方法最终找到解决的方法

一、常规方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

应该是sshd的设置不允许root用户用密码远程登录

1、修改 gedit /etc/ssh/sshd_config

找到# Authentication:

LoginGraceTime 120

PermitRootLogin without passwd

StrictModes yes

改成

# Authentication:

LoginGraceTime 120

PermitRootLogin yes

StrictModes yes

2、重启ssh

systemctl restart sshd

参考资料:

  1. 如何编译JCEF以及内嵌到桌面应用程序中
  2. 非常详细的获取 JCEF 相关 jar 包的教程
  3. Java 11包javax.xml.bind不存在
  4. Jcef官方文档
  5. Cef下载地址

 已编译版本上传百度网盘:链接:百度网盘 请输入提取码,提取码:q6oc

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单恋脚踏车

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值