JVM-自己编译一个JDK实战步骤

1.获取OpenJDK代码

编译版本:1.8
Git代码所在位置
如果本地装的jdk,请查看jdk路径下的src.zip包,里面是对应版本的源代码

// 官方使用hg,实际这个太慢了,建议用Git; 拉完代码后面的动作都一样
git clone git@github.com:openjdk/jdk.git
git checkout jdk8-b120
bash ./configure
make all
// Git操作起来简直不要太丝滑,贼快; 以下是官方标准流程,太慢了!


// 下载代码
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u/
// hg命令工具安装
yum install mercurial
// 编译前请查看官方文档  README-builds.html
chmod 755 get_source.sh
// 提取所有存储库中的所有最新变更集
./get_source.sh

// 检查配置如果没有的请根据提示安装
bash ./configure
make all
// 等着就完了

make all时候出现异常:Exception in thread “main” java.lang.VerifyError: class jdk.nashorn.internal.objects.ScriptFunctionImpl overrides final method setPrototype.(Ljava/lang/Object;)

修改:vim ./openJDk/nashorn/make/BuildNashorn.gmk
80行原来 -cp 修改为:-Xbootclasspath/p:
  在这里插入图片描述
在这里插入图片描述
此处是下载代码的,务必保证更新完全了!
在这里插入图片描述
在这里插入图片描述

文件夹文件
. (root)常见的配置和生成文件逻辑
hotspot用于构建 OpenJDK Hotspot 虚拟机的源代码和制作文件
langtoolsOpenJDK javac 和语言工具的源代码
jdk用于构建 OpenJDK runtime库和杂项文件的源代码
jaxpOpenJDK JAXP 功能的源代码
jaxwsOpenJDK JAX-WS 功能的源代码
corbaOpenJDK Corba 功能的源代码
nashornOpenJDK JavaScript 实现的源代码

后续编译部分待完善和加截图

2.源码阅读

环境变量指向镜像:/build/linux-x86_64-normal-server-release/images/j2sdk-image
在这里插入图片描述

重点:任何的程序都有其入口的main方法,jvm也不例外
地址:launcher/main.c 这个是入口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汉风唐尚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值