1.获取OpenJDK代码
编译版本:1.8 Git代码所在位置 如果本地装的jdk,请查看jdk路径下的src.zip包,里面是对应版本的源代码
git clone git@github.com:openjdk/jdk.git
git checkout jdk8-b120
bash ./configure
make all
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u/
yum install mercurial
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 虚拟机的源代码和制作文件 | langtools | OpenJDK javac 和语言工具的源代码 | jdk | 用于构建 OpenJDK runtime库和杂项文件的源代码 | jaxp | OpenJDK JAXP 功能的源代码 | jaxws | OpenJDK JAX-WS 功能的源代码 | corba | OpenJDK Corba 功能的源代码 | nashorn | OpenJDK JavaScript 实现的源代码 |
后续编译部分待完善和加截图
2.源码阅读
环境变量指向镜像:/build/linux-x86_64-normal-server-release/images/j2sdk-image
重点:任何的程序都有其入口的main方法,jvm也不例外 地址:launcher/main.c 这个是入口
|