• Mac上使用ide(idea)查看open-jdk源码


    起因

    最近在学习Java NIO部分,虽然看了很多网上的‘教程’,但是感觉还不够深入,所以想自己深入看看源码。结果NIO这部分涉及很多未开源的代码。虽然ide通过反编译看到部分源码,但是代码看起来还是太混乱。作为替代方案,就是看open-jdk的源码,这里就不过多介绍open-jdk。一开始我是在网上直接打开open-jdk网页版,一点一点翻代码,但是这样限制于网络原因速度太慢,索引也不是太方便,所以就想在本地通过搭建open-jdk环境来实现在本地查看open-jdk的源码。

    准备

    网络上一堆的mac下编译open-jdk的文章,就不一一赘述了。本人也试过,因为环境网络问题以及os版本问题均告失败,所以找了一个投机取巧的办法。在 https://www.zhihu.com/question/53791269/answer/136575323

    接触到了 zulu这款产品,摘自知乎

    Zulu是Azul Systems对OpenJDK的打包、测试、发布与支持。它没有Oracle JDK对使用场景上的诸多限制,可以放心免费下载和使用。

    它的核心部分就是原汁原味的OpenJDK,没有任何额外的改动——Azul有时候也会对OpenJDK做bug fix,但这些都是通过提交回到OpenJDK去然后再进入到Zulu Java SE产品中的。

    ​ -------RednaxelaFX

    吸引我的就是核心部分是原生的open-jdk,所以我们的投机取巧的办法就出来了:安装zulu,然后源码部分添加open-jdk的源码!

    安装初始化zulu

    1. 下载Zulu for Mac OS X ,download页面 https://www.azul.com/downloads/zulu/,看你想看哪个版本的open-jdk,我下载的是对应java8的open-jdk版本8u131

    2. 可以按照 http://zulu.org/zulu-community/zuludocs/ ,zulu的guides来安装,也可以像jdk一样的无脑点击安装。最后

      安装的位置是在 /Library/Java/JavaVirtualMachines 下

    3. 配置环境变量,类似jdk配置一样,~/.bash_profile下配置JAVA_HOME指向zulu的安装目录即可(跟oracle的jdk安装一模一样)。配置完毕以后使用 java -version来检测:效果如下

    openjdk version "1.8.0_144"
    OpenJDK Runtime Environment (Zulu 8.23.0.3-macosx) (build 1.8.0_144-b01)
    OpenJDK 64-Bit Server VM (Zulu 8.23.0.3-macosx) (build 25.144-b01, mixed mode)

    获取源码

    获取源码有几种途径,可以参考 http://www.jianshu.com/p/26bd050610a4 ,这篇文章中从官方获取源码,也可以走其他方式。因为本人网络的问题(多次下载源码超时),所以选了从国内找了对应版本的源码(关键字 open-jdk8源码),建议还是自己走官方获取的方式!!

    添加源码

    1. 打开ide(idea): File —> Project Structure —> SDKS 新增open-jdk指向安装目录
    2. 同时在source tab页面添加目录,指向网络上下载的open-jdk源码目录。
    3. 修改project的jdk使用open-jdk

    大功告成,至此我们就可以在项目里直接查看open-jdk的源码了!

  • 相关阅读:
    Redis 的 5 个常见使用场景
    当别人给你一个wsdl或者webservice接口时
    Java事务
    Java分布式锁的三种实现方案(redis)
    使用Redis数据库(String类型)
    超详细Redis数据库入门教程
    java对redis的基本操作(初识)
    String、StringBuffer与StringBuilder之间区别
    java正则表达式替换空格和换行符
    Linux 批量管理工具
  • 原文地址:https://www.cnblogs.com/coldridgeValley/p/7795297.html
Copyright © 2020-2023  润新知