一 概述

1. JDK      java开发工具包

JDK全称Java SE Development kit(JDK),即java标准版开发包,是Oracle提供的一套用于开发java应用程序的开发包,它提供编译,运行java程序所需要的各种工具和资源,包括java编译器,java运行时环境,以及常用的java类库等。

2. JRE   Java Runtime Environment(JRE)  Java运行环境

Java运行环境,它的全称Java Runtime Environment(JRE) ,因此也被称为JRE,它是运行java的必需条件。

3. JVM  Java Virtual Machine

Java虚拟机,JRE包含JVM。JVM是运行java程序的核心虚拟机,还需要其他的类加载器,字节码校验器,以及大量的基础类库。JRM除了包含JVM之外,还包含运行java程序的其它环境支持。

二 JDK的安装和配置(以JDK8为例)

1. Java SE Development kit(JDK) 8下载

2. JDK 安装

开始安装

选择安装目录

3. JDK 的配置

1. 操作步骤与操作图示

(1)新建->变量名"JAVA_HOME",变量值"D:\Java\jdk"(即JDK的安装路径)

(2)编辑->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”

(3)新建->变量名“CLASSPATH”,变量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”

2. 检测环境变量配置(cmd输入java -version查看输出的ava版本信息与安装的版本信息相同即可)

三 利用Idea搭建源码阅读调试环境

1. 在Idea中新建一个简单的java项目,然后导入JDK源码调试(JDK源码就在下载安装的JDK的src.zip压缩包中,我们将其解压缩然后复制到新建的java项目的代码目录中即可),如图src.zip的目录地址

2. src.zip解压后的目录结构以及内容

src.zip|— com           //com目录中只包含了sun目录||        |— sun  //sun目录中的内容是sun的hotspot虚拟机中java.* 和javax.*的实现类。因为包含在 |                  rt中,所以我们也可以调用。但是因为不是sun对外公开承诺的接口,所以根据根据实 |                  现的需要随时增减,因此在不同版本hotspot中可能是不同的,而且在其他的jdk实现 |                  中是没有的,调用这些类,可能不会向后兼容,所以一般不推荐使用。  |              |— java          //java目录是javaSE的标准库,是java标准的一部分,是对外承诺的java开发接口, |                  通常要保持向后兼容,一般不会轻易修改。包括其他厂家的在内,所有jdk的实现, |                  在java.*上都是一样的。|          |— javax         //javax目录也是java标准的一部分,但是没有包含在标准库中,一般属于标准库的扩展 |                  通常属于某个特定领域,不是一般性的api。 所以以扩展的方式提供api,以避免jdk |                  的标准库过大。当然某些早期的javax,后来被并入到标准库中,所有也应该属于新版|                  本JDK的标准库。比如jmx,java 5以前是以扩展方式提供,但是jdk5以后就做为标准 |                  库的一部分了,所有javax.management也是jdk5的标准库的一部分。|        |— launcher      //launcher目录中包含的是JRE中用于启动程序入口main()方法的类。  |        |— org           //org目录是由企业或者组织提供的java类库,大部分不是sun公司提供的,同 |                  com.sun.*,不具备向后兼容性,会根据需要随时增减。其中比较常用的是w3c|                  提供的对XML、网页、服务器的类和接口。 |                  

3. 导入到项目后的结构

4. 解决编译出现的系统资源不足的问题

问题:

解决办法:

5.  由于jdk源码是受保护的,我们debug,F7 step Into是无法步入调试的,其实只要进入设置将Debugger中的Do not step into the classes的勾去掉即可!

6. jdk源码文件被锁定是不能修改的,也就是常看到源码类文件有个小锁的图标。

因为这些源码文件的来源是jdk安装目录下src.zip,该包下的文件是不可更改的,所以我们在设置中将其删除,然后重新加入自己的源码包即可

四 总结

至此,JDK源码阅读调试环境搭建已经完成,希望对大家的帮助!谢谢查看!

JDK源码阅读调试环境搭建相关推荐

  1. Mycat源码篇 : 起步,Mycat源码阅读调试环境搭建

    在研究mycat源码之前必须先把环境搭建好.这篇文章的目标就是搭建mycat源码调试环境.环境主要包括: git jdk maven eclipse mysql 这里假设你知道上面的知识点.我们搭建的 ...

  2. ffmpeg编译gb28181_RTSP/GB28181协议/海康SDK/Ehome协议视频上云网关EasyCVR视频平台在linux环境下ffmpeg源码单步调试环境搭建...

    目前TSINGSEE青犀视频研发的视频上云服务平台EasyCVR已经可集成海康EHome私有协议,并且在前文中我也跟大家讲过EHome协议的配置和调用流程,有兴趣的可以阅读一下:配置及协议介绍.Eho ...

  3. 消息中间件RocketMQ源码解析-- --调试环境搭建

    1. 依赖工具 JDK :1.8+ Maven IntelliJ IDEA 2. 源码拉取 从官方仓库 [https://github.com/apache/rocketmq) Fork 出属于自己的 ...

  4. SRS4.0源码分析-调试环境搭建

    本本文采用的 SRS 版本是 4.0-b8 , 下载地址:github SRS4.0 可以很方便地在 clion 软件下面断点调试,查看函数调用,堆栈. SRS的作者杨成立很贴心,在源码里放置了一个 ...

  5. jdk源码阅读-HashMap

    前置阅读: jdk源码阅读-Map : http://www.cnblogs.com/ccode/p/4645683.html 在前置阅读的文章里,已经提到HashMap是基于Hash表实现的,所以在 ...

  6. jdk javac运行不了_Intellij IDEA搭建jdk源码阅读环境

    一.找到源码位置 直接找到jdk安装的目录,会看到src.zip的压缩包,这里面就是jdk的源码,例如下图: 在这里解压. 第一次尝试建议使用9或更早版本jdk的源码,否则易造成卡死. 二.Intel ...

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

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

  8. JDK源码阅读环境搭建

    内容来源 B站Up主: CodeSheep 视频: https://www.bilibili.com/video/BV1V7411U78L 感谢大佬分享学习心得 Thanks♪(・ω・)ノ~~~ 1. ...

  9. JDK源码阅读-搭建阅读环境

    1.找到源码位置 其实我们安装jdk的时候源码就已经存在,只要找到jdk的安装位置,就能找到源码,如果不知道jdk具体安装位置的话,可以在idea中查看. 打开目录,找到路径下的src.zip,这就是 ...

  10. jdk源码(jdk源码阅读顺序)

    如何在myEclipse中查看JDK源码 myeclipse中查看jdk类库的源码步骤如下: 1.点 "window"-> "Preferences" - ...

最新文章

  1. Python 中的魔术方法(双下划线开头和结尾的方法)
  2. 简单介绍六点nginx优化的方法
  3. MVC中执行成功弹出对话框
  4. 每个优秀程序员必须具备的技能
  5. 初学python下载哪个版本-学python下载哪个版本
  6. Boost:基于boost::asio的延迟tcp服务器测试程序
  7. xml 转map dom4j
  8. convirt2.5在虚拟机上安装笔记
  9. Photoshop的基本操作
  10. vue webapp滑动事件_js_监听移动端web触屏事件_滑动响应
  11. [转载] 字符串的startsWith和endWith方法
  12. nginx_lua vs nginx+php 应用场景
  13. numpy与tensorflow中的广播(broadcast)机制
  14. 原生js实现的日期选择插件
  15. 分享一个非常强大且好用的绘图控件QCustomPlot
  16. linux单引号作用,linux中单引号、双引号、反引号的作用
  17. 商用密码应用安全性评估量化评估规则(2021版)
  18. SAP中质检判定UD配置原理
  19. Oracle 11g实时SQL监控 --好东西不该藏着
  20. 十个技巧,让你成为“降维”专家

热门文章

  1. java经典实例 源代码_100个Java经典编程实例源代码JAVA源码下载
  2. 【转】Jenkins 构建触发器操作详解
  3. 【数据挖掘】 基于二手车交易价格预测-数据分析
  4. 云教务学校管理系统源码
  5. 自学android要多长时间,自学android开发,从零开始学Android
  6. 同步IO和异步IO的理解
  7. GIS相关网站、社区、论坛收藏
  8. Linux Vi 文本编辑器常用命令
  9. matlab实验十ask,matlab实验十ASK调制与解调实验
  10. 霍尔探头对高斯计测量的影响