编译openjdk12-33

编译环境

ubuntu20

Ubuntu里用户可以自行选择安装GCC或CLang来进行编译,但必须确保最低的版本为GCC 4.8或者CLang 3.2以上,官方推荐使用GCC 7.8或者CLang 9.1来完成编译。

源码

https://github.com/openjdk/jdk/tree/jdk-12%2B33

安装gcc

复制代码
sudo apt-get install build-essential

在编译过程中需要依赖FreeType、CUPS等若干第三方库

复制代码
sudo apt-get install libfreetype6-dev
sudo apt-get install libcups2-dev
#libxll-dev这个找不到  不影响就先不管
sudo apt-get install libxll-dev 
sudo apt-get install libxext-dev 
sudo apt-get install libxrender-dev 
sudo apt-get install libxrandr-dev 
sudo apt-get install libxtst-dev 
sudo apt-get install libxt-dev
sudo apt-get install libasound2-dev
sudo apt-get install libffi-dev
sudo apt-get install autoconf

安装openjdk11

复制代码
sudo apt-get install openjdk-11-jdk

查看参数

复制代码
#运行查看参数
bash configure --help

报错了

执行下列代码

复制代码
sudo apt-get install autoconf

然后继续执行bash configure --help 就可以看到参数了

参数详解

参数值 默认值 可选值 参数含义
--with-debug-level=<level> release release、fastdebug、slowde-bug 设置编译的级别,越往后进行的优化措施就越少,带的调试信息就越多,还有一些虚拟机调试参数必须在特定模式下才可以使用
·--enable-debug 等效于--with-debug-level=fastdebug
--with-native-debug-symbols=<method> none、internal、external、zipped 确定调试符号信息的编译方式
--with-version-string=<string> 设置编译JDK的版本号,譬如java-version的输出就会显示该信息;这个参数还有--with-version- <part>=<value>的形式,其中part可以是pre、opt、build、major、minor、security、patch之一,用于设置版本号的某一个部分。
--with-jvm-variants=<variant>[,<variant>...] server、client、minimal、core、zero、custom 编译特定模式(Variants)的HotSpot虚拟机,可以多个模式并存
--with-jvm-features=<feature>[,<feature>...] 针对--with-jvm-variants=custom时的自定义虚拟机特性列表(Features),可以多个特性并存,由于可选值较多,请参见help命令输出
--with-target-bits=<bits> 指明要编译32位还是64位的Java虚拟机,在64位机器上也可以通过交叉编译生成32位的虚拟机
--with-<lib>=<path> boot-jd、freetype、cups、x、alsa、libffi、jtreg、libjpeg、giflib、libpng、lcms、zlib 用于指明依赖包的具体路径,通常使用在安装了多个不同版本的Bootstrap JDK和依赖包的情况
·--with-extra-<flagtype>=<flags> 其中flagtype可选值为cflags、cxxflags、ldflags,分别代表C、C++和Java代码的参数 用于设定C、C++和Java代码编译时的额外编译器参数
--with-conf-name=<name> 指定编译配置名称,OpenJDK支持使用不同的配置进行编译,默认会根据编译的操作系统、指令集架构、调试级别自动生成一个配置名称,譬如"linux-x86_64-server-release",如果在这些信息都相同的情况下保存不同的编译参数配置,就需要使用这个参数来自定义配置名称

参数测试

configure命令承担了依赖项检查、参数配置和构建输出目录结构等多项职责,如果编译过程中需要的工具链或者依赖项有缺失,

命令执行后将会得到明确的提示,并且给出该依赖的安装命令

复制代码
bash configure --enable-debug --with-jvm-variants=server

会报错

复制代码
apt-get install zip

然后会提示如下

按照错误提示的安装即可

复制代码
sudo apt-get install libfontconfig1-dev

然后继续执行bash命令

如果一切顺利的话,就会收到配置成功的提示,并且输出调试级别,Java虚拟机的模式、特性,使用的编译器版本等配置摘要信息,如下所示:

编译

复制代码
#清理目录
make clean
make dist-clean

---------------------------持续更新20240605-------------------------------------------------------------

相关推荐
一叶飘零_sweeeet几秒前
从 0 到 1 攻克订单表分表分库:亿级流量下的数据库架构实战指南
java·数据库·mysql·数据库架构·分库分表
苹果醋34 分钟前
数据库索引设计:在 MongoDB 中创建高效索引的策略
java·运维·spring boot·mysql·nginx
xianyinsuifeng15 分钟前
Oracle 10g → Oracle 19c 升级后问题解决方案(Pro*C 项目)
c语言·数据库·oracle
TDengine (老段)22 分钟前
TDengine 选择函数 First 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
dreams_dream1 小时前
企业级 Django 日志配置示例
数据库·django·sqlite
络72 小时前
Redis 非缓存核心场景及实例说明
数据库·redis·缓存
ホロHoro2 小时前
学习笔记:MYSQL(4)
笔记·学习·mysql
计算机学长felix2 小时前
基于Django的“酒店推荐系统”设计与开发(源码+数据库+文档+PPT)
数据库·python·mysql·django·vue
GBASE2 小时前
ITPUB专访南大通用——GBase 8s数据库以内核铸根基,以生态赢未来
数据库
GBASE2 小时前
GBASE南大通用技术分享:构建最优数据平台,GBase 8s数据库安装准备(二)
数据库