欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

deepin下编译openjdk8

程序员文章站 2022-07-12 20:30:00
...

deepin下编译openjdk8

经过半天的努力终于在deepin下成功编译了OpenJDK8,现将实现步骤记录下来。如有错误欢迎各位大佬指正。由于本人水平有限,各位小伙伴如果有问题的化,就请自行解决吧。

环境准备

Deppin:15.11
Bootstrap JDK:1.7
openJDK:1.8
gcc:5.4.0

安装依赖
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfreetype6-dev libasound2-dev ccache

gcc降级

由于deepin默认gcc版本较高,会导致编译失败。所以需要将gcc版本将到5(笔者使用了gcc5.4.0的版本),具体步骤如下

  1. 配置新的apt源
    笔者本人的deepin默认的apt找不到低版本的gcc,所以配置了一个新的源。如果小伙伴们使用的apt可以直接安装低版本gcc,则可以忽略该步骤。具体配置方法可以参考: apt源配置参考
  2. 安装gcc5
sudo apt-get install -y gcc-5
sudo apt-get install -y g++-5
  1. 修改软链接
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-5 gcc
sudo rm g++
sudo ln -s g++-5 g++
  1. 验证
gcc -v
g++ -v

安装Bootstrap JDK

由于OpenJDK部分代码是使用Java语言实现,所以编译这些Java代码的时候需要一个编译时可以使用的JDK来支持,此JDK极为Bootstrap JDK。此处直接将下载的JDK1.7解压当做Bootstrap JDK使用即可。本文以 [BootJDK] 来表示bootstrap jdk的解压目录。

解压OpenJDK

将要编译的OpenJDK解压到指定的目录,本文以 [OpenJDK] 来表示要编译的OpenJDK解压目录

配置OpenJDK

  1. 配置OpenJDK
    注意此处 [BootJDK] 表示bootstrap jdk的解压目录
sudo ./configure --with-target-bits=64 --with-boot-jdk=[BootJDK] --with-debug-level=slowdebug  --enable-debug-symbols ZIP_DEBUGINFO_FILES=0
  1. 设置忽略waring信息
    不设置的话,会出现将一些waring作为error抛出导致无法继续编译。此处笔者忽略掉了全部的waring,有其他需要的小伙伴可以自行学习了解。
    修改配置文件[OpenJDK]/hotspot/make/linux/makefiles/gcc.make文件

WARNINGS_ARE_ERRORS = -Wno-all # 207行
WARNINGS_FLAGS = -Wno-all # 224行

编译OpenJDK

sudo make all DISABLE_HOTSPOT_OS_VERSION_CHECK=OK ZIP_DEBUGINFO_FILES=0

见到下图所示内容代表编译成功
deepin下编译openjdk8

测试编译是否成功

[OpenJDK]/build/linux-x86_64-normal-server-slowdebug/jdk/bin下执行./java -version