脚本宝典收集整理的这篇文章主要介绍了基于Linux编译JDK18,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
JDK都没手动编译过,敢说自己是Java程序员吗?(By 羊哥——JDK都没手动编译过,敢说自己是Java程序员吗?实战编译Java源码(JDK源码,JVM)视频教程_哔哩哔哩_bilibili)
本文基于Ubuntu虚拟机,使用JDK17编译JDK18(应该是目前官方最新的release版本)
安装好虚拟机软件,笔者使用的是VMware
在Ubuntu官网下载好UbuntuISO镜像,笔者下载的是Ubuntu20.04 desktop
下载地址为:
下载Ubuntu桌面系统 | Ubuntu
下载好后启动VMware,设置虚拟机的一些配置信息,建议配置给大一点,毕竟是编译程序,CPU核心多一点会比较快
配置好后挂载ISO镜像,启动虚拟机,配置Ubuntu的一些信息(主要是密码),等待安装完成
配置SSH工具后就可以在虚拟机外进行SSH连接并操作,当然,可以直接在虚拟机内操作
sudo apt install openssh-server
参考链接:如何在Ubuntu 20.04上启用SSH - GlaryJoker - 博客园 (cnblogs.com)
vim是Linux上普遍使用的终端文本编辑工具,当然,可以选择其他文本工具
sudo apt install vim
Ubuntu自带的安装源比较慢,此处笔者配置的是阿里云的源
参考链接:
ubuntu镜像-ubuntu下载地址-ubuntu安装教程-阿里巴巴开源镜像站 (aliyun.com)
备份原文件(可选):
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
删除原文件:
sudo rm -rf /etc/apt/sources.list
编辑镜像文件:
sudo vim /etc/apt/sources.list
粘贴入镜像站给出的地址:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
根据openjdk官方给出的编译指导(Building the JDK (java.net)),分别需要安装以下工具:
sudo apt-get install build-essential
需要邻近版本的JDK,一般选用前一个版本
sudo apt-get install openjdk-17-jdk
sudo apt-get install libfreetype6-dev
sudo apt-get install libcups2-dev
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev
sudo apt-get install libasound2-dev
sudo apt-get install libffi-dev
需要最低版本2.69
sudo apt-get install autoconf
需要最低版本3.81
需要最低版本3.2
具体配置项请看:
Building the JDK (java.net)
此处默认配置
具体配置项请看:
Building the JDK (java.net)
此处默认配置
生成配置
bash configure
编译全部
make all
编译完成后编译后的文件在build
文件夹下
查看文件:
zhanny@ubuntu:~/Downloads/jdk18$ ls build/linux-x86_64-server-release/
bootcycle-spec.gmk build.log.old configure.log images make-support
buildjdk-spec.gmk buildtools configure-support jdk spec.gmk
build.log compare.sh hotspot Makefile support
其中images
就是release文件夹
zhanny@ubuntu:~/Downloads/jdk18$ ls build/linux-x86_64-server-release/images/
docs docs-javase docs-reference gengraphs jdk jmods sec-bin.zip symbols test
images
下的jdk
的bin
下就是常见的Java编译器
zhanny@ubuntu:~/Downloads/jdk18$ ls build/linux-x86_64-server-release/images/jdk/bin/
jar jconsole.debuginfo jlink jstack.debuginfo
jar.debuginfo jdb jlink.debuginfo jstat
jarsigner jdb.debuginfo jmap jstatd
jarsigner.debuginfo jdeprscan jmap.debuginfo jstatd.debuginfo
java jdeprscan.debuginfo jmod jstat.debuginfo
javac jdeps jmod.debuginfo jwebserver
javac.debuginfo jdeps.debuginfo jpackage jwebserver.debuginfo
java.debuginfo jfr jpackage.debuginfo keytool
javadoc jfr.debuginfo jps keytool.debuginfo
javadoc.debuginfo jhsdb jps.debuginfo rmiregistry
javap jhsdb.debuginfo jrunscript rmiregistry.debuginfo
javap.debuginfo jimage jrunscript.debuginfo serialver
jcmd jimage.debuginfo jshell serialver.debuginfo
jcmd.debuginfo jinfo jshell.debuginfo
jconsole jinfo.debuginfo jstack
[1]Building the JDK (java.net)
[2]openjdk/jdk18: JDK 18 development (github.com)
[3]真·手把手,从头教你编译JDK - 简书 (jianshu.com)
[4]实战:自己编译JDK - 简书 (jianshu.com)
以上是脚本宝典为你收集整理的基于Linux编译JDK18全部内容,希望文章能够帮你解决基于Linux编译JDK18所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。