序言:上一节说了阅读源码的顺序,有了一个大体的方向,咱们就知道该如何下手。接下来,就要搭建一个方便阅读源码及debug的环境。有助于跟踪源码的调用情况。

目前新开发的项目, 大多数都是基于JDK1.8开发,所以我选择该版本进行源码分析。

JDK1.8版本号:jdk1.8.0_151

一. JDK1.8的src在哪里?

找到JDK安装包所在目录,会看到src.zip的压缩包,这里面就是JDK的源码,如下图。

二. idea搭建步骤

01. 新建一个简单的Java工程
打开idea,菜单栏File => Project,出现如下图

在点Next, 选个初始化一个Hello word应用,出现如下图:

再点Next, 输入项目名, 及保存路径:

最后出现的界面如下:

02. 把源码src.zip解压到该工程下的src目录下

你以为这样就万事大吉了吗?NO, NO, NO

我导入后,运行Main.java文件里面,看能不能正常运行起来,结果在编译的时候,出现了各种ERROR, 找不到xxx类等问题。

看着这么多错误,我有打算放弃的念头。但是,针对技术,我是一个很倔强的人。

索性思考了一番,这不就是我没遇到过的问题吗?如果解决了,那不是又增长了知识。

开始了我的疯狂自虐操作。

比如 找不到xxx类,可以去网上找相关的类,添加进去就好。只要不是与项目JDK有冲突问题,就都还好。

索性最后问题都被我逐一解决了,最终运行成功。

三. 搭建过程中问题总结

各种ERROR解决思路,为以后的朋友们铺平道路

我是一个修路工人。

问题1:缺少com.sun.tools包

解决思路:File => Project structure => Libraries 把jdk路径下的lib包添加到工程中,如下图:

问题2:缺少sun.awt.UNIXToolkit 和 sun.font.FontConfigManager这两个类

解决思路: 在src的目录下手动添加这两个类

问题3:debug的时候,出现如下,调用的src.zip中的文件

解决思路: 排除掉src.zip文件,按下图操作即可。

问题4:debug的时候,误点Alternative source availble for the class xxxx 的disable

解决思路: 打开setting => Debugger, 如下图 选中该选项。

丑媳妇总要见公婆的。源码代码已经提交到github上, 欢迎大家fork和关注。

github: https://github.com/raysonfang/jdk1.8-source-analysis

刚起步,欢迎吐槽。争取打造成JDK源码分析系列资源合集,想学习JDK源码的, 就可以自行下载。

JDK1.8源码分析03之idea搭建源码阅读环境的更多相关文章

  1. 【转】jQuery源码分析-03构造jQuery对象-源码结构和核心函数

    作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com 毕竟是边读边写,不对的地方请告诉我,多多交流共同进步.本章还未写完,完了会提交PDF. 前记: 想系 ...

  2. jQuery源码分析-03构造jQuery对象-源码结构和核心函数

    3. 构造jQuery对象 3.1源码结构 先看看总体结构,再做分解: (function( window, undefined ) { var jQuery = (function() { // 构 ...

  3. DolphinScheduler1.3.2源码分析(二)搭建源码环境以及启动项目

    前置依赖组件安装 找一台服务器,或者本地的虚拟机,然后在服务器上安装好jdk,zookeeper,mysql. 1.源码调试环境搭建 源码环境搭建可以参考DolphinScheduler官方网站的开发 ...

  4. NIO 源码分析(03) 从 BIO 到 NIO

    目录 一.NIO 三大组件 Channels.Buffers.Selectors 1.1 Channel 和 Buffer 1.2 Selector 1.3 Linux IO 和 NIO 编程的区别 ...

  5. Tomcat源码分析一:编译Tomcat源码

    Tomcat源码分析一:编译Tomcat源码 1 内容介绍 在之前的<Servlet与Tomcat运行示例>一文中,给大家带来如何在Tomcat中部署Servlet应用的相关步骤,本文将就 ...

  6. Android源码分析(十一)-----Android源码中如何引用aar文件

    一:aar文件如何引用 系统Settings中引用bidehelper-1.1.12.aar 文件为例 源码地址:packages/apps/Settings/Android.mk LOCAL_PAT ...

  7. 源码分析系列1:HashMap源码分析(基于JDK1.8)

    1.HashMap的底层实现图示 如上图所示: HashMap底层是由  数组+(链表)+(红黑树) 组成,每个存储在HashMap中的键值对都存放在一个Node节点之中,其中包含了Key-Value ...

  8. angular源码分析:angular源代码的获取与编译环境安装

    一.安装git客户端 1.windows环境推荐使用TortoiseGit. 官网地址:http://tortoisegit.org 下载地址:http://tortoisegit.org/downl ...

  9. Spring加载流程源码分析03【refresh】

      前面两篇文章分析了super(this)和setConfigLocations(configLocations)的源代码,本文来分析下refresh的源码, Spring加载流程源码分析01[su ...

随机推荐

  1. Web自动化测试 二 ----- HTML

    HTML 一.结构 html> 与 </html> 之间的文本描述网页 <body> 与 </body> 之间的文本是可见的页面内容 <h1> 与 ...

  2. Intent对象(组件间的通信原理)

    Intent对象是一种可以在运行时动态绑定组件的关键技术,通过使用Intent对象,可以告诉系统你想要实现什么样的操作,也就是Intent对象里面包含的请求内容,请求再由Android操作系统接收到, ...

  3. PLT与GOT

    0x01  什么是PLT和GOT 名称: PLT : 程序链接表(PLT,Procedure Link Table) GOT : 重局偏移表(GOT, Global Offset Table) 缘由: ...

  4. C语言学习书籍推荐《嗨翻C语言(英文)Head First C》下载

    David Griffiths (作者), Dawn Griffiths (作者) Ever wished you could learn C from a book? Head First C pr ...

  5. python接口自动化(三十一)--html测试报告通过邮件发出去——下(详解)

    简介 本篇总结了 QQ (SSL)邮箱和 163(非SSL) 邮箱发送邮件,专治各种不行,总之看完这篇以后麻麻再也不用担心我的邮件收不到了.以下代码兼容 python2 和 python3,运行无异常 ...

  6. Spring IoC控制反转创建实例

    Spring IoC控制反转创建实例写一个配置文件beans.xml,配置文件的约束可以访问:完整链接:https://repo.spring.io/libs-release-local/org/sp ...

  7. 【题解】搬书-C++

    搬书 Description 陈老师桌上的书有三堆,每一堆都有厚厚的一叠,你想逗一下陈老师,于是你设计一个最累的方式给他,让他把书 拿下来给同学们.若告诉你这三堆分别有i,j,k本书,以及每堆从下到上 ...

  8. VS2012-SSAS 表格模型安全性

    模型安全性与AD域账户结合之后,浏览模型出现的问题: 当对在表“Products”中定义的行级别安全性表达式求值时遇到了错误.错误消息: 当对在表“Products”中定义的行级别安全性表达式求值时遇 ...

  9. 默认文档接卸--手机web app开发笔记(二)

    首先我们启动HBuilderX2.0 ,界面如图2-1所示 图2-1 软件开发界面 单击“文件—新建—项目”,弹出新建项目管理界面,我们在里面进行了项目类型选择“5+APP”.项目名称填写“编程之路” ...

  10. svg文字描边动画

    svg动画在网页中是经常见到的,svg动画使得网页看起来清新美观 任何不规则图形都可以由svg绘制完成,当然也包括文字,文字本身就可以看作一个不规则图形