Ubuntu-20.04.5编译JDK-8

所需资源链接汇总

JDK8下载地址

openjdk源码下载地址

make3.8.1下载地址

Idea下载地址

安装JDK8

要想编译jdk,首先电脑本身要有一个jdk环境,所以我们需要先安装oracle的jdk8

1. 下载jdk8

JDK8下载地址

解压到/usr/local/lib/目录下

sudo tar -zxvf jdk-8u351-linux-x64.tar.gz -C /usr/local/lib/

2. 配置环境变量

  • 在/etc/profile.d/文件夹下创建并编辑myprofile.sh文件
sudo gedit /etc/profile.d/myprofile.sh
  • 在文本中输入以下内容
#!/bin/sh

#set oracle jdk environment
export JAVA_HOME=/usr/local/lib/jdk1.8.0_351
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH
  • 使myprofile.sh文件生效
source /etc/profile.d/myprofile.sh

3. 验证jdk是否安装成功

java -version

出现以下提示,说明安装成功

在这里插入图片描述

安装gcc4.9和g++4.9

1. 添加源

sudo bash -c 'echo "deb http://dk.archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list'
sudo bash -c 'echo "deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list'
sudo apt update

2. 安装

sudo apt-get install -y gcc-4.9
sudo apt-get install -y g++-4.9

3. 切换gcc版本

手动配置gcc-4.9和g+±4.9的优先级

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 50
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

4. 验证gcc版本

gcc -v

在这里插入图片描述

注意:再次使用 sudo apt update命令会导致gcc和g++的版本升高,是所以暂时不要使用,因为高版本的gcc和g++会导致编译openjdk时报错

安装make3.8.1

1. 下载make3.8.1

make3.8.1下载地址

解压文件

sudo tar -zxvf make-3.81.tar.gz

进入make-3.81文件夹,注意之后的操作全部在此文件夹进行

cd make-3.81/

2. 修改配置

sudo gedit glob/glob.c

修改glob/glob.c文件, 注释掉这两行 (不修改会报错)

注释掉第210行和第231行代码

在这里插入图片描述

3.编译安装

一会要用到make命令,所以要确保已经有一个高版本make

sudo apt install make

编译

./configure --prefix=/usr/local/make-3.81
sudo make install

4. 配置make3.81到环境变量

编辑环境变量文件

sudo gedit /etc/profile.d/myprofile.sh

把以下内容加入文本末尾

export PATH=/usr/local/make-3.81/bin:$PATH

使myprofile.sh生效

source /etc/profile.d/myprofile.sh

编译jdk

1. 下载jdk源码

openjdk源码下载地址

在这里插入图片描述

解压文件

unzip openjdk-8u41-src-b04-14_jan_2020.zip

2. 修改配置文件

  • 进入解压后的文件夹目录,注意之后的操作全部在此文件夹进行
cd openjdk/
  • 修改hotspot/make/linux/Makefile文件的第232行代码
gedit hotspot/make/linux/Makefile

SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4% 5%

  • 修改hotspot/make/linux/makefiles/gcc.make文件的第208行代码
gedit hotspot/make/linux/makefiles/gcc.make

WARNINGS_ARE_ERRORS = -Wno-all

  • 安装编译所需的依赖
sudo apt-get install -y libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfreetype6-dev libasound2-dev
  • 修改configure文件权限
chmod +x configure
  • 编译
./configure
make all

此过程时间很长,慢慢等吧

openjdk8的目录结构

jdk目录:openjdk/build/linux-x86_64-normal-server-release/images/j2sdk-image

jre目录:openjdk/build/linux-x86_64-normal-server-release/images/j2re-image

源码目录:openjdk/jdk/src/share/classes

将来更改源码目录的java文件后,需要使用在openjdk目录下使用make images命令重新编译才可生效

参考链接

ubuntu20编译openjdk8

JDK源码——JDK8源码编译全流程(linux)

Ubuntu安装jdk8的两种方式

Linux下JDK应该安装在哪个位置

OpenJDK9编译作业

JDK都没手动编译过,敢说自己是Java程序员吗?实战编译Java源码(JDK源码,JVM)视频教程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值