📌


文章目录

  • 一、JDK
  • 1. 概述
  • 2. 作用
  • 2. 子目录说明
  • 二、 JRE
  • 1. 概述
  • 2. 作用
  • 三、JVM
  • 1. 概述
  • 2. 作用
  • 四、 SDK
  • 1. 概述
  • 2. 与JDK的联系
  • 3. 与JDK的区别
  • 五、JDK、JRE、JVM三者的联系与区别
  • 1. 联系
  • 2. 区别




一、JDK

1. 概述

  • JDK是 Java Development Kit 的简称 ,是 Java 语言的软件开发工具包(SDK),是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
  • JDK = JRE + 开发工具(例如 javac 编译工具等)

2. 作用

  • JDK为java程序开发提供编译和运行环境,所有java程序的编写都依赖于它。使用JDK可以将java程序编写为字节码文件(.class文件)。

2. 子目录说明

  • bin 存放一些可执行程序,比如javac(编译器)还有java的运行工具
  • include 由于 java 是由C和C++去编写的,启动的时候需要引用一些C语言的头文件,本目录就是存放这些头文件的
  • jre java运行时环境,如果只跑java的话,这个目录就够了
  • lib java的类库文件
  • src压缩文件 java基础类源代码
  • demo 存放演示程序

二、 JRE

1. 概述

  • JRE是 Java Runtime Environment 的简称,它包括Java虚拟机(JVM)、Java核心类库和支持文件。它不包含开发工具(JDK)–编译器、调试器和其它工具。它是java的运行时环境
  • JRE = JVM + 标准类库

2. 作用

  • JRE是java的运行环境,也就是说你只是想运行一个java构建的应用程序,你只安装JRE就够了。
  • JDK是用于java程序的开发,JRE则只能运行字节码文件(.class文件),而没有编译功能。如果你要自行开发 Java软件,请下载JDK

三、JVM

1. 概述

  • JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

2. 作用

  • 它提供java字节码的运行时环境,通过编译java文件为.class文件得到字节码文件
  • java虚拟机在执行字节码文件时,把字节码文件解释成具体平台上的机器指令执行。这就是java能够“一次编译,到处运行的原因”。

四、 SDK

1. 概述

  • SDK是 Software Development Kit 的缩写,中文意思是“软件开发工具包”,这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。SDK是一系列文件的组合,它为软件的开发提供一个平台(它为软件开发使用各种API提供便利)。

2. 与JDK的联系

  • JDK (Java Development Kit) 是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。

3. 与JDK的区别

  • 可以认为JDK只是SDK的一种(子集),因为它是开发java程序的一个平台,开发其他程序的SDK可以没有JDK。比如你下载了一个软件开发平台 eclipse-SDK-3.2.2-win32.zip,它本身里面是没有JDK的。但是只要开发java程序就必须使用JKD。

五、JDK、JRE、JVM三者的联系与区别

1. 联系

  1. 使用编辑器或IDE(集成开发环境)编写Java源文件,即 .java文件。
  2. 程序必须编译为字节码文件,javac(Java编译器)编译源文件为 .class文件。
  3. 类文件可在任何平台/操作系统上由JVM(Java虚拟机)执行 。
  4. JVM将字节码文件翻译为机器可以执行的机器码(0,1二进制)。
  • 即我们是利用JDK(调用JAVA API)开发了属于我们自己的java程序后,通过JDK中的编译程序(javac)将我们的文本 .java 文件编译成.class字节码文件,在JRE上运行这些.class字节码文件,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
  • JVM不能单独搞定.class的执行,解释.class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹binlib,在这里可以认为bin里的就是JVMlib中则是JVM工作所需要的类库,而JVMlib和起来就称为JRE

2. 区别

  • JKD主要面向开发者,具有java的编译功能,JRE主要面向用户
  • JDK = JRE + 开发工具(例如 javac 编译工具等)
  • JRE = JVM + 标准类库
  • 如何用java开发sdk_java