编译自己的jdk(使用openJDK源码编译jdk )
2024-09-06 00:35:33
找到openjdk网站(http://hg.openjdk.java.net/) 选择需要编译的版本,浏览readme文件,有获取源码及编译步骤
CentOS-7-x86_64-DVD-1804.iso
vim /etc/sysconfig/network-scripts/ifcfg-ens33
- 设置ONBOOT=yes
- 重启网络服务systemctl restart network
源代码及Bootstrap JDK准备
Bootstrap JDK移至/usr/local/java
cd /usr/local/java
tar -xzvf jdk-8u40-linux-x64.gz
yum install mercurial
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev/
cd jdk8u-dev
sh ./get_source.sh
环境准备
bash ./configure
根据提示yum install 安装所有缺少的依赖
直至运行bash ./configure出现下面
A new configuration has been successfully created in
/usr/local/java/jdk8u-dev/build/linux-x86_64-normal-server-release
using default settings.
Configuration summary:
* Debug level: release
* JDK variant: normal
* JVM variants: server
* OpenJDK target: OS: linux, CPU architecture: x86, address length: 64
Tools summary:
* Boot JDK: openjdk version "1.8.0_232" OpenJDK Runtime Environment (build 1.8.0_232-b09) OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode) (at /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64)
* Toolchain: gcc (GNU Compiler Collection)
* C Compiler: Version 4.8.5 (at /usr/bin/gcc)
* C++ Compiler: Version 4.8.5 (at /usr/bin/g++)
Build performance summary:
* Cores to use: 1
* Memory limit: 974 MB
编译
make all
----- Build times -------
Start 2019-11-20 14:30:45
End 2019-11-20 15:20:07
00:00:37 corba
00:00:42 demos
00:06:47 docs
00:14:52 hotspot
00:01:36 images
00:00:24 jaxp
00:00:32 jaxws
00:22:51 jdk
00:00:44 langtools
00:00:16 nashorn
00:49:22 TOTAL
-------------------------
Finished building OpenJDK for target 'all'
使用
- 进入image文件夹
cd build/linux-x86_64-normal-server-release/images/j2sdk-image/bin
- 查看此java版本
[root@localhost bin]# ./java -version
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment (build 1.8.0-internal-root_2019_11_20_14_27-b00)
OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode)
之后这个整个 j2sdk-image 文件夹就可以被拷贝到任何地方,并配置环境变量使用
export JAVA_HOME=/usr/用户名/java/OpenJDK_1.8.0
export CLASSPATH=./:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
之后source .bash_profile使环境变量生效,用java -version查看结果
最新文章
- GitHub for windows呆瓜级入门
- Linux下添加新硬盘,分区及挂载(转)
- 关于cin,getchar(),scanf()的注意事项(转)
- Python基础一. 简介、变量、对象及引用
- Mac OS X上用CoreCLR运行一个真正的.NET控制台程序
- 分布式架构从零开始========》【基于Java自身技术实现消息方式的系统间通信】
- 设置浮点数的显示精度&;precision(0)
- android layoutparams应用指南(转)
- xcode5.1上真机调试报告No architectures to compile for...的解决办法
- iOS进阶:Objective-C runtime(一)
- matplotlib实现数据可视化
- oracle如何导出和导入数据库表
- Mysql中的explain和desc
- es6 常用方法
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'multipartResolver': Failed to introspect bean class [org.springframework.web.multipart.commons.CommonsMultipartR
- EFM32之GPIO
- shell正则表达
- Centos6.8 安装nginx
- 【读书笔记】iOS-iOS视频
- uoj#274. 【清华集训2016】温暖会指引我们前行