前言
下载过程和编译过程时间比较长,我这里使用的是直接就可以configure的包,不需要下载其他源,本次使用的包在这里。
http://zjyun.cc:6003/s/RFSnQQ2kcJiP3BL
《深入理解Java虚拟机》中编译的是jdk12,我这里使用的是jdk8,原理一样的,看自己喜好。
环境准备
我是在物理机上单独虚出来一个1g 1核的虚机,资源有限所以后面的编译时间也有些长,建议4核4g 好点。
部署环境
下载OPenJDK包
http://zjyun.cc:6003/s/RFSnQQ2kcJiP3BL
也可以下载我这个,也可以使用官方的包,但是需要getsource 需要好久时间。
修改bootclasspath
这部是之前试错试出来的,即使你安装了自己的jdk,但是还是会在make 最后的阶段报错:
修改
vi ./nashorn/make/BuildNashorn.gmk
第80行
将-path修改为=> -Xbootclasspath 如图:
如果想错误复现使用原来的path make就行。
执行configure
nohup bash ./configure --with-target-bits=64 --with-boot-jdk=/usr/local/java/ --with-debug-level=slowdebug --with-update-version="1.8_wzj" > build.log &
版本不同可能使用的参数不一样,具体可以参考–help
–with-boot-jdk:指定你自己事前安装的。
–with-update-version:指定自己的版本。
–with-debug-level。
·–with-debug-level=
日志信息如下:
http://zjyun.cc/wordpress/wp-content/uploads/2022/11/build.log
执行make
这一步时间比较长,执行”
nohup make all >> make.log &
我这里执行的是makeall 所以时间会很长,执行成功后如下,如果有报错停止直接yum对应的提示包就行!
日志信息如下:
http://zjyun.cc/wordpress/wp-content/uploads/2022/11/make.log
成功之后今进入jdk 目录:
cd ./build/linux-x86_64-normal-server-slowdebug/jdk/bin/
执行
./javac
./java -version
FAQ
- 在安装make all 结束之前,会报如下错误 不影响编译.
[Error] encoded value was less than 0: encode(-8.326673E-17, 5.0, 11.0, 16.0) [Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0) [Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0) [Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0) [Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0) [Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0) [Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0) [Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0) [Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0) [Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0) [Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0) [Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0) [Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0) [Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0) [Error] encoded value was greater than 3: encode(15.029411, 1.0, 14.0, 15.0) [Error] encoded value was less than 0: encode(-0.05882353, 1.0, 24.0, 25.0)
真棒(๑•̀ㅂ•́)و✧
真棒(๑•̀ㅂ•́)و✧
真棒(๑•̀ㅂ•́)و✧