编译自己的jdk(使用openJDK源码编译jdk )

找到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查看结果

原文地址:https://www.cnblogs.com/lantuanqing/p/12028058.html