【深入理解Java虚拟机】保姆级整理汇总 第一部分:走近Java (二) 自己编译JDK(Windows平台)

目录

一、前言

二、正文

1.下载OpenJDK源码

1.1 选择OpenJDK版本       

1.2 下载OpenJDK源码

2.下载编译JDK

2.1 下载编译自举JDK

 2.1.2 选择JDK11

2.1.3 测试OpenJDK11

3.安装cygwin

3.1 为什么安装cygwin

3.2 cygwin下载地址:Cygwin Installation

 3.3 cygwin安装

4.安装VS Code2017

4.1 为什么需要下载VS Code2017?

4.2 VS Code2017下载:Visual Studio

4.3 VS Code2017安装

5.总结


一、前言

        想要窥探Java虚拟机内部的实现原理,最直接的一条路径就是编译一套自己的JDK,通过阅读和跟踪调试JDK源码来了解Java技术体系的运作,虽然这样门槛会比阅读资料更高一点,但肯定也会比阅读各种文章、书籍来得更加贴近本质。

       本来未计划更新此篇文章,但笔者在Windows平台编译JDK时,遇到了各种各样意料之外的事情(Oracle对Windows支持度不太友好),查阅网上资料非常片面和不符合实际,答案基本都是千篇一律的Copy,因此决定更新此篇博文。

        如果你还是新手且平台为Windows时,希望我更新的详细步骤可以对你有所帮助。如果你是其他平台(Linux/mac OS),因为官方对其他平台支持度较高,直接按照其他博客教程即可。

        本篇文章主要详细介绍OpenJDK11、OpenJDK12源码、Cygwin、VS Code2017社区英文版安装过程以及为什么要安装这些软件,主要给新手提供一个详细的步骤流程图,如果你已经安装,请确认无误后进入下一篇源码编译的文章。

二、正文

1.下载OpenJDK源码

1.1 选择OpenJDK版本       

        2006年11月13日Java正式开源,OpenJDK组织成立并对这些JDK源码进行独立管理。OpenJDK接收Sun公司移交的JDK源码时,Java正处于JDK 6时代的初期,JDK 6 Update 1才刚刚发布不久,JDK 7还处于研发状态的半成品。

        OpenJDK的第一个版本就是Sun公司正在开发的JDK 7,考虑到OpenJDK 7完全不足以支持生产部署,因此又在OpenJDK 7 Build 22的基础上建立了一条新的OpenJDK 6分支,剥离掉所有JDK 7新功能的代码,把OpenJDK 6发布给公众使用。等到OpenJDK 7达到了可正式对外发布时,从OpenJDK7的主分支延伸出OpenJDK 8的研发分支和OpenJDK 7 Update(用于发布更新OpenJDK 7)两条子分支,新的功能或Bug修复通常是在最新分支上进行的,当功能或修复在最新分支上稳定之后会同步到其他老版本的维护分支上。后续的JDK 8和JDK 9都重复延续着类似的研发流程。

        到了JDK 10及以后的版本,全部开发工作统一归属到JDK和JDK Updates两条主分支上,主分支不再带版本号,在内部再用子分支来区分具体的JDK版本。

        因此我还是建议选择OpenJDK10及其以后的版本进行编译,此次演示我选择OpenJDK12源码进行演示。

1.2 下载OpenJDK源码

1.2.1 OpenJDK官网源码列表地址:OpenJDK Mercurial Repositories

        

 1.2.2 选择“jdk12”

默认展示jdk12更新日志,我们点击“browse”。

然后再点击“zip”即可自动下载。

然后解压至本地(我解压到F:),效果如下图。

OpenJDK12路径:F:\jdk12-06222165c35f

2.下载编译JDK

2.1 下载编译自举JDK

        熟悉编译器的自举原理的小伙伴应该都清楚,编译器和语言是鸡与蛋的问题,一门语言最初总是以其他语言作为编译器。这也就意味着编译器自举一般都是编译器开发的一个里程碑事件。Java作为高级语言,已经可以实现编译自举,就是通过Java语言来编译JDK。

        通常自举的版本会小于编译的版本,但是大家一般都会使用前一个版本作为自举版本,所以我们编译OpenJDK12源码需要下载OpenJDK11。由于很多小伙伴像我下面截图这样可能已经安装了其他版本JDK,为了简化操作,所以我使用不安装OpenJDK11的方式进行编译。

        注意:大家一定要区分开,下载OpenJDK11和OpenJDK12源码,OpenJDK11是安装包,12是源码。

2.1.1 OpenJDK官网JDK下载地址:Archived OpenJDK GA Releases

 2.1.2 选择JDK11

        我选择的是11 GA(build 11+28)

2.1.3 测试OpenJDK11

        我解压压缩包至F盘,效果如下图

        打开CMD,切换文件夹至“F:\jdk-11\bin”,输入“java -version”查看效果,如下图则代表成功。

3.安装cygwin

3.1 为什么安装cygwin

        cygwin是一个windows平台上的unix模拟环境,主要是通过重新编译,将其他系统上的软件移植到windows上,因为OpenJDK暂不支持Windows直接编译,所以我们通过cygwin进行编译过程。

         源码doc/building/building.md明确表示windows唯一支持的为Cygwin。

3.2 cygwin下载地址:Cygwin Installation

 3.3 cygwin安装

点击“下一步”

 点击“下一步”

 选择安装目录,点击“下一步”

 

选择下载附件保存的文件夹

 

 选择“Use System Proxy Settings”,选择“下一步”

选择163的Proxy地址(选择其他的也可以),选择“下一步” 

左上角view选择“Category”

搜索“autoconf” ,选择“autoconf”双击“Skip”

Skip变成版本号即可,如图变成了“15-1”。

然后依次搜索“tar”、“make”、“zip”、“unzip”重复以上双击Skip操作(已经是版本号无需双击),然后选择“下一步”

 选择“下一步”,等待完成即可,安装完成如下图。

4.安装VS Code2017

4.1 为什么需要下载VS Code2017?

        查看OpenJDK12源码文件make/autoconf/toolchain_windows.m4文件,里面配置了支持的VS Code版本:2017、2013、2015、2012、2010,所以我们安装了支持的最新版2017版本。

4.2 VS Code2017下载Visual Studio

 选择2017栏目下的“下载”

 选择“VS Code2017社区版”,选择“download”

4.3 VS Code2017安装

打开下载好的Visual Studio安装包

选择“继续”

选择VS Code2017社区版,点击“安装”

工作负荷选择“使用C++的桌面开发”

语言包取消勾选“中文”,勾选英语,点击右下角的安装

注意:请不要修改安装位置,否则要改很多东西,修改后打包工具无法找到VS Code,需要改源码

安装好点击VS Code任务栏图标

 选择“Not now,maybe later.”

选择自己喜欢的风格,点击“Start Visual Studio”

 打开如图英文版代表成功,关掉即可。

5.总结

        本篇文章介绍了OpenJDK11、OpenJDK12源码、Cygwin、VS Code2017社区英文版的详细安装步骤,在下篇文章中,我会说明具体编辑步骤以及如何修改源代码。请查看下一篇文章。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

己光君

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

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

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

打赏作者

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

抵扣说明:

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

余额充值