下图为JDK8开发指南中Java概念图:
JVM、JRE和JDK之间的关系

什么是JVM?

JVM(Java Virtual Machine),即Java虚拟机,是一种用于计算设备的规范,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
JVM是Java实现跨平台最核心的部分,编译后的字节码(即.class文件),在不同系统的JVM执行,其结果是相同的(即“一次编译,到处运行”),是因为JVM针对不同系统有特定实现。

什么是JRE?

JRE(Java Runtime Environment,Java运行环境),包括Java虚拟机(JVM)、Java核心类库和支持文件,但不包含开发工具(编译器、调试器和其他工具)。只是运行使用Java程序,安装JRE即可,但并不是绝对的。项目不只是Java程序,例如JSP文件,Tomcat编译时需要JDK支持。

什么是JDK?

JDK(Java Development Kit),Java开发工具包,是整个Java开发的核心,包含了JRE(Java运行时环境)和Java工具(如javac编译器、javadoc文档生成器等)。如下图所示:JVM、JRE和JDK之间的关系

JDK的目录结构

  • bin目录:JDK开发工具的可执行文件,如:java.exe、编译器javac.exe、文档生成器javadoc.exe等等
  • include目录:包含C语言头文件,支持Java本地接口与Java虚拟机调试程序接口的本地编程技术
  • jre目录:Java运行时环境,包含Java虚拟机、Java核心类库,但不包含开发工具
  • lib目录:Java开发工具所用类库,包含支持JDK工具的核心类库,tools.jar、dt.jar等等
  • COPURIGHT文件:版权信息
  • src.zip:Java类库源码

JRE的目录结构

JVM、JRE和JDK之间的关系

  • bin目录:Java平台使用的工具和库可执行文件及DLL
  • lib目录:Java运行时环境使用的类库、配置文件和资源文件等

Java为什么可以跨平台,实现一次编写,多处运行?

Java能过跨平台的核心在于JVM。不同的操作系统向上的API肯定存在差异的,JVM针对不同的操作系统有特定实现。JVM识别字节码后,根据不同系统的JVM实现,映射到不同系统的API调用,从而实现代码不修改即可跨平台运行。

相关文章:

  • 2021-04-23
  • 2021-07-05
  • 2021-11-22
  • 2021-12-24
  • 2022-01-07
猜你喜欢
  • 2022-01-06
  • 2021-07-24
  • 2021-09-21
  • 2021-08-07
  • 2021-06-27
  • 2021-10-20
相关资源
相似解决方案