CentOS7下编译JDK
2022/1/11 7:03:20
本文主要是介绍CentOS7下编译JDK,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
参考:
centos7编译JDK - Ye-ye - 博客园 (cnblogs.com)
《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) - 周志明》
这里的环境是WSL(CentOS7)
1.要编译的JDK源码
OpenJDK12: OpenJDK12源码镜像,源地址:https://hg.openjdk.java.net/jdk/jdk12/ (gitee.com)
我这里是使用git下载
git clone https://gitee.com/isspark/OpenJDK12
2.安装要编译的JDK的上一个版本JDK(这里的步骤与参考博客一致)
yum install -y java-11-openjdk-devel //检查的话用 java --version
3.安装GCC 版本至少4.8以上(也是一致)
yum install centos-release-scl yum install devtoolset-7 scl enable devtoolset-7 bash
4.编译JDK
进入源码,执行
bash configure
这里出现了报错
根据报错信息,安装autoconf
yum install autoconf
还是报错,
根据提示,输入
yum install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel
然后重新执行
bash configure
我这里除上面之外,还要输入
yum install cups-devel yum install fontconfig-devel yum install alsa-lib-devel
到最后没有报任何错误,显示
执行
make images
开始编译。
编译完成后执行
cd build/linux-x86_64-server-release/jdk/bin ./java -version
可以查看编译后的JDK版本
以上即是没有加入任何编译参数的编译方式.
关于参数,可以输入 bash configure --help查看
常用参数:
--with-debug-level=<level>:设置编译的级别,可选值为release、fastdebug、slowde-bug,越往后进 行的优化措施就越少,带的调试信息就越多。 还有一些虚拟机调试参数必须在特定模式下才可以使 用。默认值为release。--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>...]:编译特定模式(Variants)的HotSpot虚拟机,可以多个模式并存,可选值为server、client、minimal、core、zero、custom。 --with-jvm-features=<feature>[,<feature>...]:针对--with-jvm-variants=custom时的自定义虚拟机特性列表(Features),可以多个特性并存,由于可选值较多,请参见help命令输出。 --with-target-bits=<bits>:指明要编译32位还是64位的Java虚拟机,在64位机器上也可以通过交叉编译生成32位的虚拟机。 --with-<lib>=<path>:用于指明依赖包的具体路径,通常使用在安装了多个不同版本的BootstrapJDK和依赖包的情况。 其中lib的可选值包括boot-jd、freetype、cups、x、alsa、libffi、jtreg、libjpeg、giflib、libpng、lcms、zlib。 --with-extra-<flagtype>=<flags>:用于设定C、C++和Java代码编译时的额外编译器参数,其中flagtype可选值为cflags、cxxflags、ldflags,分别代表C、C++和Java代码的参数。 --with-conf-name=<name>:指定编译配置名称,OpenJDK支持使用不同的配置进行编译,默认会根据编译的操作系统、指令集架构、调试级别自动生成一个配置名称, 譬如“linux-x86_64-server-release”,如果在这些信息都相同的情况下保存不同的编译参数配置,就需要使用这个参数来自定义配置名称。
这篇关于CentOS7下编译JDK的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-09百万架构师第十二课:源码分析:Spring 源码分析:Spring系统概述及IOC实现原理|JavaGuide
- 2025-01-08如何用关键链方法突破项目管理瓶颈?
- 2025-01-08电商人必看!6 款提升团队协作与客户满意度软件!
- 2025-01-08电商团队管理混乱?快用这 6 款软件优化协作流程!
- 2025-01-08短剧制作效率低?试试这5款任务管理工具
- 2025-01-08高效应对电商高峰,6 款团队协作软件大揭秘!
- 2025-01-08为什么外贸人都爱上了在线协作工具?
- 2025-01-08提升工作效率,从这些任务管理工具开始
- 2025-01-08新年电商订单暴增,必备的 6 款可视化协作办公软件有哪些?
- 2025-01-08短剧制作经理必备技能与工具全解析