一、找到源码位置

直接找到jdk安装的目录,会看到src.zip的压缩包,这里面就是jdk的源码,例如下图:

在这里解压。

第一次尝试建议使用9或更早版本jdk的源码,否则易造成卡死。

二、Intellij IDEA搭建源码阅读环境

1、Intellij IDEA新建java项目

打开Intellij IDEA,左上角File > Project,新建一个java项目:

选取默认模板后Next:

项目名称与包结构示例,填写后点击Finish:

项目创建完成,例如下图:

2、把源码src.zip移动到该工程下的src目录下,并新建Main类

注意:

<1.直接粘贴到idea可能造成长时间卡顿,建议使用本文方法;

<2.部分教程把源码粘贴到自定义包目录下,可能导致源码import语句报错。

3、为了避免修改原来的SDKs,另外再添加一个名为“jdk-source-analysis”的jdk。

File ->Project Structure->Platform Settings ->SDKs

将其关联的jdk安装目录下的源码src.zip替换成项目的src

将jdk源码项目src添加到sourcepath中

修改项目(JdkSourceLearn)使用的jdk为新建的“jdk-source-analysis” jdk

三、运行Main类的main方法

如果运行不成功,会出现以下错误提示:

Error:java: OutOfMemoryError: insufficient memory(系统资源不足);

程序包com.sun.tools.javac.api不存在;

找不到sun.awt.UNIXToolkit;

找不到sun.font.FontConfigManager。

1、Error:java: OutOfMemoryError: insufficient memory

错误原因

导致这个错误的原因主要是因为jdk版本问题,此处有两个原因,一个是编译版本不匹配,一个是当前项目jdk版本不支持。

查看项目的jdk

File ->Project Structure->Project Settings ->Project

或使用快捷键Ctrl+Alt+shift+S打开项目的jdk配置:

查看此两处是否与目标jdk一致

查看工程的jdk

点击上图中Modules查看对应jdk版本:

查看java编译器版本

File–>Setting…–>Build,Execution,Deployment–>Compiler–>Java Compiler

设置相应Module的target bytecode version与jkd一致版本。

查看构建过程编译器所需的堆大小

File–>Setting…–>Build,Execution,Deployment–>Compiler

堆大小可由原来的700改为1000

2、程序包com.sun.tools.javac.api不存在

手动将jdk安装目录下lib包中tools.jar添加到项目中

File ->Project Structure->Project Settings ->Libraries

将tools.jar lib添加到jdk1.8.0_202-source-analysis项目中。

点击ok后。解决Error:(40, 31) java: 程序包com.sun.tools.javac.api不存在问题。

3、找不到sun.awt.UNIXToolkit、找不到sun.font.FontConfigManager

解决缺少的这两个类,可以去OpenJDK(http://openjdk.java.net/)拷贝

找到UNIXToolkit类,将UNIXToolkit类中的内容( 传送门)拷贝到项目的src\main\java\下,新建“sun\awt”包中的新建“UNIXToolkit.java”中。

到此已解决sun.awt.UNIXToolkit找不到的错误

找到FontConfigManager类,将FontConfigManager类中的内容( 传送门)拷贝到项目的src\main\java\下,新建“sun\font”包中的新建“FontConfigManager.java”中。

编辑整理丨田培辰

jdk javac运行不了_Intellij IDEA搭建jdk源码阅读环境相关推荐

  1. 【深入浅出 Yarn 架构与实现】1-2 搭建 Hadoop 源码阅读环境

    本文将介绍如何使用 idea 搭建 Hadoop 源码阅读环境.(默认已安装好 Java.Maven 环境) 一.搭建源码阅读环境 一)idea 导入 hadoop 工程 从 github 上拉取代码 ...

  2. spring5.3.x源码阅读环境搭建

    spring5.3.x源码阅读环境搭建-gradle构建编译 文章目录 spring5.3.x源码阅读环境搭建-gradle构建编译 一.依赖工具 二.下载源码 三.开始构建 四.编译源码 五.源码测 ...

  3. Mybatis 源码阅读环境搭建

    Mybatis源码阅读环境搭建 前言 一.下载mybatis的源码 二.编译源码 三.创建测试项目 前言     mybatis源码阅读环境搭建还是比较简单的,接下来我们讲解一下如何搭建该源码阅读环境 ...

  4. Mac搭建JDK源码阅读环境

    点赞再看,养成习惯,微信公众号搜索[虚竹讲程序经],获取更多技术干货! 想要读懂JDK源码,需要在自己电脑上搭建JDK的源码阅读环境,正所谓,工欲善其事,必先利其器.下面演示如何在Mac上结合Idea ...

  5. ardupilot java_基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建

    基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建 作者:Awesome 日期:2017-10-21 需准备的软件工具 Ardupilot飞控源码 PX4 toolchain JAVA ...

  6. Spring Boot 2.0系列文章(四):Spring Boot 2.0 源码阅读环境搭建

    前提 前几天面试的时候,被问过 Spring Boot 的自动配置源码怎么实现的,没看过源码的我只能投降��了. 这不,赶紧来补补了,所以才有了这篇文章的出现,Spring Boot 2. 0 源码阅 ...

  7. Spark源码学习之IDEA源码阅读环境搭建

    软件准备 (1)Java 1.8 (2)Scala 2.11.12(需要在IDEA中安装) (3)Maven 3.8.2(需要在IDEA中配置) (4)Git 2.33 以上软件需要安装好,并进行环境 ...

  8. Gitolite + repo 搭建安卓源码开发环境

    Gitolite + repo 搭建安卓源码开发环境 转载请注明出处:http://blog.csdn.net/u011479494/article/details/50629669 相比gitosi ...

  9. Ubuntu18.04搭建Android源码编译环境

    一.前言 使用Ubuntu18.04搭建Android源码的编译,本文是参考Android系统源码编译文章撰写的. 二.步骤 1.下载Android源码.Ubuntu环境搭建.git安装请参考其他文章 ...

最新文章

  1. 为什么我的python没有run_为什么我的returncode=0而没有stdoutsubprocess.run?
  2. 不用开着电脑,如何将脚本代码放到服务器上?
  3. uniapp防止多次点击_多次赔、不分组、价格低,守卫者3号真的这么“逆天”?...
  4. 记录结果再利用的动态规划
  5. 戴尔服务:为企业转型导航
  6. vue生命周期大白话篇
  7. SAP Cloud for Customer里根据External Reference搜索销售订单
  8. 数据结构-树的基础代码
  9. mysql 5.1.3_1.1.1 MySQL5.5默认存储引擎的调整(3)
  10. 电子工业出版社博文视点在中国移动互联网研讨会
  11. E - Alignment
  12. 管程由哪三部分组成_换热器是几壳程?几管程的?
  13. MongoVUE的基本使用
  14. python调用sqlldr_sqlldr用法
  15. Centos7配置软RAID+LVM
  16. CSU2080: 航行日志的修复
  17. linux team 模式,linux 聚合口 team libteam 简介
  18. JS 截取视频某一帧图片 实现视频截图
  19. 中烟工业考计算机知识吗,广东烟草局中烟工业常见备考问题解答
  20. CE修改器入门:精确数值扫描

热门文章

  1. url参数传递 java_URL中文参数传递问题
  2. Hello,Word宏!
  3. texmaker不能点击跳转到行
  4. python以及MATLAB终止循环的快捷键
  5. Java长存!12个Java长久占居主要地位的原因
  6. 【Scrapy】OAuth 学习笔记
  7. sphinx 全文搜索引擎
  8. 南海有macbook吗?
  9. MongoDB学习笔记~Update方法更新集合属性后的怪问题
  10. MFC中的几个常用类——CWnd