【备忘】Ubuntu16编译openjdk8的踩坑

本文讲述了在Ubuntu 16编译JDK 8时遇到的困难,包括版本检查问题、makefile调整和内存不足引发的编译错误。作者分享了针对这些问题的解决办法,并建议选择适配系统版本进行编译以节省时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用centos7编译jdk8的时候很顺利,换成Ubuntu16就一堆坑,根本原因就是系统太新,Ubuntu16自带的jdk版本都到9了~~

1、编译的时候添加DISABLE_HOTSPOT_OS_VERSION_CHECK=ok选项,不然会报版本不支持

make images DISABLE_HOTSPOT_OS_VERSION_CHECK=ok

2、修改hotspot/make/linux/makefiles/adjust-mflags.sh文件第67行,不然会报" recipe for target ‘ad_stuff’ failed"

s/ -\([^ 	][^ 	]*\)j/ -\1 -j/
改为
s/ -\([^    I][^    ]*\)j/ -\1 -j/

#第一个[^ 	]改为[^ 	I]

好像是因为make版本导致的问题,我的make版本是4.1,按这样修改后问题解决。

有文章说直接删掉这行,但是按这样来又会导致别的问题,按照另一篇文章说的修改,就没问题了

最后想说,最好还是选择合适的系统版本编译吧,不然踩坑太花时间了

参考文章:
https://blog.youkuaiyun.com/m0_37325106/article/details/79990293
https://segmentfault.com/a/1190000013390255


再说下编译JVM过程中遇到的一个坑
编译的时候报错:

## Starting jdk
Compiling 9417 files for BUILD_JDK
Killed
CompileJavaClasses.gmk:316: recipe for target '/data/github/jdk-jdk8-b120/build/linux-x86_64-normal-server-release/jdk/classes/_the.BUILD_JDK_batch' failed
make[2]: *** [/data/github/jdk-jdk8-b120/build/linux-x86_64-normal-server-release/jdk/classes/_the.BUILD_JDK_batch] Error 137
BuildJdk.gmk:64: recipe for target 'classes-only' failed
make[1]: *** [classes-only] Error 2
/data/github/jdk-jdk8-b120//make/Main.gmk:115: recipe for target 'jdk-only' failed
make: *** [jdk-only] Error 2

本来我前几次编译都成功了,后面开始编译就一直报这个错,根据信息完全看不出是哪里问题。
http://freebsd.1045724.x6.nabble.com/Failure-compiling-java-openjdk8-td6093672.html
然后看到这篇文章说可能是内存不足,试着把虚拟机里面的vscode关掉,果然就编译通过了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值