JDK、JRE、JVM的特点和关联

简介: JDK、JRE、JVM的特点和关联

Java 的三个重要的概念是 JDK(Java Development Kit)、JRE(Java Runtime Environment)和 JVM(Java Virtual Machine)。它们之间有着密切的关联,同时又有不同的职责和特点。

  1. JDK(Java Development Kit):
  • 特点: JDK 是 Java 开发工具包,提供了 Java 开发所需的工具和库。它包括了 Java 编译器(javac)、调试器(jdb)、Java 文档生成器(javadoc)等开发工具,以及 Java 标准库和其他一些工具。
  • 关联: JDK 包含了 JRE,因此可以说 JDK 包括了 JRE。在开发 Java 应用程序时,需要安装 JDK。
  1. JRE(Java Runtime Environment):
  • 特点: JRE 是 Java 运行时环境,提供了运行 Java 应用程序所需的环境和库。它包括了 Java 虚拟机(JVM)、Java 核心类库(Java API,用于支持基本的 Java 编程)以及其他一些运行时所需的类和资源。
  • 关联: JRE 是 Java 应用程序运行的基本环境。如果只需要运行 Java 程序而不进行开发,可以安装 JRE。
  1. JVM(Java Virtual Machine):
  • 特点: JVM 是 Java 虚拟机,是 Java 程序运行的环境。它负责将 Java 源代码编译为字节码,然后在特定平台上执行这些字节码。JVM 提供了内存管理、垃圾回收、线程管理等功能,以确保 Java 程序的可移植性和性能。
  • 关联: JVM 是 JRE 的一部分。JRE 包含了 JVM 和其他运行时所需的库。当你运行一个 Java 程序时,实际上是在 JVM 上运行这个程序。

关系图示例:

关系总结:

  • JDK 包含 JRE。
  • JRE 包含 JVM。
  • JDK 包含编译器、调试器等开发工具,而 JRE 只包含运行 Java 应用程序所需的环境。

在实际开发中,如果你只是要运行 Java 程序,那么安装 JRE 就足够了。但如果你需要进行 Java 开发,包括编写和编译代码,那么你需要安装 JDK。 JRE 和 JVM 的目标是提供一个可移植、独立于平台的 Java 运行环境。 JRE 通过包含 JVM 和核心类库实现了这个目标。

相关文章
|
8天前
|
存储 算法 Java
jvm性能优化(一)-基于JDK1.8
jvm性能优化(一)-基于JDK1.8
|
15天前
|
Java
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
|
2月前
|
Java
No compiler detected, make sure you are running on top of a JDK instead of a JRE
No compiler detected, make sure you are running on top of a JDK instead of a JRE
35 1
|
2月前
|
C# Windows 开发者
当WPF遇见OpenGL:一场关于如何在Windows Presentation Foundation中融入高性能跨平台图形处理技术的精彩碰撞——详解集成步骤与实战代码示例
【8月更文挑战第31天】本文详细介绍了如何在Windows Presentation Foundation (WPF) 中集成OpenGL,以实现高性能的跨平台图形处理。通过具体示例代码,展示了使用SharpGL库在WPF应用中创建并渲染OpenGL图形的过程,包括开发环境搭建、OpenGL渲染窗口创建及控件集成等关键步骤,帮助开发者更好地理解和应用OpenGL技术。
95 0
|
2月前
|
Java 编译器 测试技术
Java零基础教学(03):如何正确区别JDK、JRE和JVM??
【8月更文挑战第3天】Java零基础教学篇,手把手实践教学!
46 2
|
2月前
|
Java 编译器 开发工具
JDK vs JRE:面试大揭秘,一文让你彻底解锁Java开发和运行的秘密!
【8月更文挑战第24天】JDK(Java Development Kit)与JRE(Java Runtime Environment)是Java环境中两个核心概念。JDK作为开发工具包,不仅包含JRE,还提供编译器等开发工具,支持Java程序的开发与编译;而JRE仅包含运行Java程序所需的组件如JVM和核心类库。一个简单的"Hello, World!"示例展示了两者用途:需借助JDK编译程序,再利用JRE或JDK中的运行环境执行。因此,开发者应基于实际需求选择安装JDK或JRE。
41 0
|
2月前
|
缓存 Java 编译器
JRE、JDK、JVM 和 JIT 之间的区别详解
【8月更文挑战第22天】
40 0
|
2月前
|
Java
cxf 动态调用 WebService No compiler detected, make sure you are running on top of a JDK instead of a JRE
cxf 动态调用 WebService No compiler detected, make sure you are running on top of a JDK instead of a JRE
36 0
|
2月前
|
Arthas Prometheus 监控
使用JDK自带工具调优JVM的常用命令
使用JDK自带工具调优JVM的常用命令
|
2月前
|
Java Docker 索引
记录一次索引未建立、继而引发一系列的问题、包含索引创建失败、虚拟机中JVM虚拟机内存满的情况
这篇文章记录了作者在分布式微服务项目中遇到的一系列问题,起因是商品服务检索接口测试失败,原因是Elasticsearch索引未找到。文章详细描述了解决过程中遇到的几个关键问题:分词器的安装、Elasticsearch内存溢出的处理,以及最终成功创建`gulimall_product`索引的步骤。作者还分享了使用Postman测试接口的经历,并强调了问题解决过程中遇到的挑战和所花费的时间。