美文网首页
2022-12-26

2022-12-26

作者: forios | 来源:发表于2022-12-25 14:23 被阅读0次

按照《深入理解Java虚拟机》中的流程进行,有少许区别,记录如下

配置:Mac OS 10.15.7、XCode 12.0.1、jdk12、IDEA

下载代码

从https://hg.openjdk.java.net/jdk/jdk12下载代码一直失败,换成从github下载代码。

git clone git@github.com:openjdk/jdk.git

找到jdk12最后一次提交,tag=jdk-12-ga,本地切换到这个tag上。

编译

sh configure

执行默认配置项,会在/build下生成新的目录。

表示配置成功,过程中的问题靠提示可以解决。

make all或者make images

进行编译。

表示编译成功,过程中遇到的大部分问题在网上可以找到解决办法。

例外的是下面这个

error: comparison of different enumeration types in switch statement ('jvmtiHeapReferenceKind' and 'jvmtiObjectReferenceKind') [-Werror,-Wenum-compare-switch]

        case JVMTI_REFERENCE_ARRAY_ELEMENT:

            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1 error generated.

找到对应的源码修改记录,在本地做对应修改即可,https://github.com/openjdk/jdk/commit/4dececb589289605d38b8de69f1f3dc7a9a8ecb1

编译完成后,得到的JDK在“JDK源码根目录/build/macosx-x86_64-server-release/jdk”目录下,这里就是可用的JDK,跟$JAVA_HOME里的一样。

使用

创建普通Java工程

执行,可以看出用的是$JAVA_HOME里的JDK

使用自己编译的JDK

再次执行,结果显示,使用的是自己编译的JDK

编辑源码

修改println方法

去JDK源码根目录重新编译JDK,使改动生效。回到代码再次执行,发现改动已经生效。

————————————————

版权声明:本文为CSDN博主「weixin_42228501」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_42228501/article/details/123691630

相关文章

  • 恐惧和愤怒的多种表达

    2022-12-26

  • 学习批判性思维

    2022-12-26

  • 【早安心语】

    【2022-12-26】 早安 春夏秋冬 Peaceful life is like a glass of boi...

  • 0417读书|金花的秘密

    2022-12-26 北京 晴天灯塔读书,持续行动1000天,这是417天。 读书|金花的秘密 荣格 卫礼贤著《金...

  • 诚意功夫

    第26天(2022-12-26)诚意功夫 阳明从滁州回到南京任上,刚好爱徒徐爱也在南京做官,于是阳明身边很...

  • 明天无论如何还是打算去趟车管所了

    学习spline!今天回去先录制手工视频吧,录制两个,剪辑一个,半小时完成。 2022-12-26 16:03:4...

  • 2022-12-26

    祝澜 1825天 2022-12-26 读书笔记: 转移学生们行为的最好方式之一,就是问与你想要改变的行为有关...

  • 2022-12-27

    2022-12-26 2022-12-25 重启 突然之间发现已经很久没有真正写过更文了,但是今天是个特殊的日子,...

  • 爱是成全,不是改变

    中原焦点团队 坚持分享1621天 2022-12-26 我们常说:爱是一种能力,被爱是一种感觉。当两个人相爱时...

  • 姆妈

    2022-12-26 姆妈 今天突然发现,听到这两个词,我会是害怕,说不出害怕。会有恐惧在里面,我立马掐断了电...

网友评论

      本文标题:2022-12-26

      本文链接:https://www.haomeiwen.com/subject/enkgqdtx.html