Java JDK 安装目录及其子目录含义 10分钟详解 - 精简归纳


JERRY_Z. ~ 2020 / 8 / 30

转载请注明出处!️


目录

一、JDK 安装目录及其子目录结构图

这里以 JDK 1.8.0_231 版本为例

JDK 安装在了:D:\Program\Java 目录下

当 JDK 安装完成后,在安装目录下除了 jdk 文件夹, 还会出现一个 jre 文件夹,而 jdk 文件夹内部也包含一个 jre 文件夹……,具体含义待会再说,先看一下 JDK 安装目录及其子目录结构图:


二、认识 JDK 与 JRE

(1)、啥是 JDK ?

JDK 即 Java SDK (全称:Java 程序开发的工具包),JDK 是整个 Java 的核心,包括了 Java 的开发环境和运行环境,以及一堆 Java 工具 (tools.jar) 和 Java 基础的类库 (rt.jar) 等。

(2)、啥是 JRE ?

JRE 即 Java 运行环境,是运行 JAVA 程序所必须的环境的集合,包含 JVM (JAVA 虚拟机)标准实现、Java 核心类库 (API) 及支持文件,但不包含开发工具(编译器、调试器等)。

(3)、JDK 与 JRE 的关系

<1>、区别

JDK 是开发工具包,是用来开发 Java 程序的,也就自然是面对 Java 的程序开发人员,而 JRE 是只是运行环境,面向的是 Java 程序的使用者。也就是说,如果要使用 Java 开发程序,则必须安装 JDK,但如果只是想运行 Java 程序,那只需要安装JRE 即可。

<2>、联系

参考以下Java源文件的编译和执行过程

1、Java 源文件 (.java) 经过 Java 编译器 (javac.exe) 编译以后形成 JVM 可运行的字节码 (.class) 文件。

2、运行 Java 解释器 (java.exe) 即可将 JVM 上运行的目标代码(字节码,即 .class 文件)解释成为具体平台的机器码(通常为:二进制码),也就可以运行该 Java 程序了。

3、任何一台机器只要配备了 Java 解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。但要注意的是 Java 解释器只是一个基于 JVM 平台的程序,所以它不能单独执行,必须依赖于JVM。

<3>、包含



由上图可知:JDK 包含 JRE 包含 JVM

所以,安装 JDK 就间接安装 JRE 及 JVM 了


三、JDK 各个文件夹含义详解

(1)、D:\Program\Java\jdk 目录

<1>、D:\Program\Java\jdk

jdk 根目录,包含版权、许可及 README 文件以及Java核心平台API的源文件归档 (src.zip)。

<2>、--jdk\bin

jdk开发工具可执行文件目录,里面包含有 javac.exe、java.exe 等可执行程序。

<3>、--jdk\lib

jdk 开发工具使用的类库目录,主要包括 tools.jar 和 dt.jar。

<4>、--jdk\jre

jdk 开发工具所使用的 Java 运行时环境的根目录,除了文档外,它与可部署的 jre 完全相同。

<5>、--jdk\include

c 的头文件,用与支持 native-code 库使用 jvm Debugger(虚拟机调试器)接口。

(2)、D:\Program\Java\jdk\jre 目录

<1>、D:\Program\Java\jdk\jre

Java 运行环境存放目录。

<2>、 --jdk\jre\bin

jre 执行文件及 DLL 库,可执行文件与 jdk\bin 相同,不必将该目录放在 PATH 环境变量中。

<3>、--jdk\jre\lib

Java 程序运行时环境使用的代码库、属性设置和资源文件,主要包括:

1、rt.jar

系统引导库(构成Java平台核心API的RunTime 类)。

2、charsets.jar

字符转换类及其它与国际化和本地化有关的类。

3、--jdk\jre\lib\ext

Java 平台扩展类库的缺省安装目录。例如 JavaHelp jar 就可以放在此目录下。

4、--jdk\jre\lib\security

包含用于安全管理的文件。这些文件包括安全策略 (java.policy) 和安全属性 (java.security) 文件。

5、--jdk\jre\lib\applet

对 applet 支持的一些资源文件。

6、--jdk\jre\lib\fonts

TrueType 字体文件。

(3)、为什么 Java 目录中会存在两个 jre 目录以及三个 lib 目录,他们的作用和区别又是什么?

<1>、两个 jre 目录

1、D:\Program\Java\jre

可部署的 JRE。

2、D:\Program\Java\jdk\jre

jdk 中自带并使用的 JRE。

3、区别及联系

总体来说,两个 JRE 文件夹的内容基本相同,区别主要体现在工作的职责上,也就是不同的 JRE 负责不同的工作范围。

如果只是要执行 Java 程序,则只需要 Java 目录下的 JRE 即可。如果要开发 Java 程序,则需要 JDK 中的 JRE。比如我们使用 javac.exe 来编译 Java 程序时,系统会优先使用 jdk\bin 下的可执行文件,使用的运行环境也是 jdk 下的 jre。

<2>、三个 lib 目录

D:\Program\Java\jre\lib:jre下的。

D:\Program\Java\jdk\lib:jdk下的。

D:\Program\Java\jdk\jre\lib:jdk\jre下的。

1、jre 下的 lib

只是运行 java 程序的 jar 包,是为 JVM 运行时候用的,包括所有的标准类库和扩展类等。

2、jdk 下的 lib

包括 java 开发环境的 jar 包,是给 JDK 用的,例如 JDK 下有一些工具,可能要用该目录中的文件,比如编译器等。

3、jdk 下的 jre 下的 lib

是开发环境中,运行时需要的 jar 包。最典型的就是导入的外部驱动 jar 包,因为编译时,系统找的是 jdk 下的 jre,而不是最外层的 jre。


四、附

交流方式:

️ ️ ️

QQ: 1846334075

WeChat: zhoujirui54

CSDN:https://blog.csdn.net/D_si_God

Cnblogs:https://www.cnblogs.com/JERRY-Z-J-R/

GitHub:https://github.com/JERRY-Z-J-R

Gitee:https://gitee.com/JERRY-Z-J-R

本文内容参考于 https://blog.csdn.net/JUSTWOSHISHUI/article/details/84706788 在原文的基础上,进行了重新直观的排版,并加入了一些知识点和流程图对相应结构与知识进行更直观的解释

史上!最最最简洁明了的 Java JDK 安装目录及其子目录含义 10分钟详解 - 精简归纳的更多相关文章

  1. 深入浅出 Java JDK 安装目录及其子目录含义 10分钟详解 - 精简归纳

    Java JDK 安装目录及其子目录含义 10分钟详解 - 精简归纳 JERRY_Z. ~ 2020 / 8 / 30 转载请注明出处!️ 目录 Java JDK 安装目录及其子目录含义 10分钟详解 ...

  2. JDK安装与基础环境变量配置 入门详解 - 精简归纳

    JDK安装与基础环境变量配置 JERRY_Z. ~ 2020 / 9 / 17 转载请注明出处!️ 目录 JDK安装与基础环境变量配置 一.下载 二.安装 (1).双击.exe文件 (2).全选安装工 ...

  3. JAVA JDK 环境变量配置 入门详解 - 精简归纳

    JAVA JDK 环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 13 转载请注明出处!️ 目录 JAVA JDK 环境变量配置 入门详解 - 精简归纳 一.为什么j ...

  4. Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳

    Sublime Text3 for Java 编译运行环境配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 24 转载请注明出处!️ 目录 Sublime Text3 for ...

  5. JAVA JDK安装及path环境变量配置

    JDK安装 JVM  :JAVA虚拟机 JRE :java运行环境=JVM+核心类库 JDK :JAVA开发工具包=JRE+java开发工具 java开发工具:编译工具(javac.exe) . 运行 ...

  6. linux查看java jdk安装路径和设置环境变量

    一:查看类型 windows: set java_home:查看JDK安装路径 java -version:查看JDK版本 linux: whereis java which java (java执行 ...

  7. Java/JDK安装教程手册(正规图文全流程)、运行、环境配置

    Java/JDK教程手册 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 Download Resouc ...

  8. Windows下Java JDK安装和环境变量配置

    [Java攻城狮学习路线](http://www.cnblogs.com/apollospotatolikett/p/8665123.html 1.JDK下载 下载地址:http://www.orac ...

  9. [转]JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解

    [转] JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 - dreamman的日志 - 网易博客http://blog.163.com/dreamman_yx/blog/st ...

随机推荐

  1. 7.3 NOI模拟赛 苹果 随机 高维前缀和

    头一次遇到高维前缀和的题目 所以赛时不太会写. \(n\cdot Mx\cdot log\)的暴力做法这里不再赘述. 容易想到随机一个数字 然后其有\(\frac{1}{2}\)的概率在答案的集合中. ...

  2. P3250 [HNOI2016]网络

    LINK:网络 一棵树 每次添加一条路径 或者删除之前的一条路径 或询问除了不经过某个点之外剩下的最大值. 一个显然的思路 对于一条路径的权值我们直接把权值塞上去 标记永久化一下即可. 考虑如何求答案 ...

  3. ASP.NET中使用Cache类来缓存页面的信息

    实现 如果将数据保存在全局应用程序对象Application中,值将会在程序运行时一直存在,而我们只需要缓存一段时间. ASP.NET提供了一个Cache对象来执行对象数据的缓存. Cache对象是S ...

  4. 22-关键字:super

    1.super 关键字可以理解为:父类的 2.可以用来调用的结构: 属性.方法.构造器 3.super调用属性.方法: 3.1 我们可以在子类的方法或构造器中.通过使用"super.属性&q ...

  5. Python面向对象,站在更高的角度来思考

    开篇 面向过程编程和面向对象编程是两种基本的编程思想. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去 ...

  6. Iconfont的代码使用

    1.Iconfont官网 相关阅读: Iconfont-阿里巴巴矢量图标库 Iconfont-阿里巴巴矢量图标库-代码使用 2.下载代码 注意到把鼠标悬停到图标上,会出现三个按钮. 我们点击" ...

  7. akka-typed(9) - 业务分片、整合,谈谈lagom, 需要吗?

    在讨论lagom之前,先从遇到的需求开始介绍:现代企业的it系统变得越来越多元化.复杂化了.线上.线下各种系统必须用某种方式集成在一起.从各种it系统的基本共性分析:最明显的特征应该是后台数据库的角色 ...

  8. dom4j基本操作

    DOM4J与利用DOM.SAX.JAXP机制来解析xml相比,DOM4J 表现更优秀,具有性能优异.功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文档来解析xml. ...

  9. java final关键字与static关键字

    一  final关键字 1.final修饰类不可以被继承,但是可以继承其他类. 例如: class Yy {} final class Fu extends Yy{} //可以继承Yy类 class ...

  10. C++实现哈夫曼编码/译码器(数据结构)

    设计一个哈夫曼编码.译码系统.对一个ASCII编码的文本文件中的字符进行哈夫曼编码,生成编码文件:反过来,可将编码文件译码还原为一个文本文件.(1) 从文件中读入任意一篇英文短文(文件为ASCII编码 ...