一 概述
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源码阅读调试环境搭建已经完成,希望对大家的帮助!谢谢查看!