JDK 和 JRE 有什么区别

简介: JDK(Java Development Kit)是Java开发工具包,包含编译器、调试器等开发工具,用于开发Java程序。JRE(Java Runtime Environment)是Java运行环境,包含Java虚拟机和类库,用于运行Java程序。简言之,JDK用于编写Java程序,JRE用于运行这些程序。
  1. 定义
    • JDK(Java Development Kit):是Java开发工具包。它是Java程序员用于开发Java程序的一套工具集,提供了编译、调试和运行Java程序的环境和工具。
    • JRE(Java Runtime Environment):是Java运行时环境。它主要用于运行已有的Java程序,包含了Java虚拟机(JVM)和Java核心类库等运行Java程序所必需的组件。
  2. 组成部分
    • JDK
      • 包含JRE,因为要开发Java程序,首先需要能够运行Java程序来测试和验证开发的成果。
      • 还包括一系列开发工具,如编译器(javac),它可以将Java源文件(.java)编译成字节码文件(.class);调试器(jdb),用于帮助程序员查找和修复程序中的错误;还有文档生成工具(javadoc),可以根据Java代码中的注释生成API文档等。
    • JRE
      • 主要由Java虚拟机(JVM)、Java核心类库和支持文件组成。JVM是Java程序的运行核心,它负责执行字节码文件。Java核心类库包含了大量预先编写好的类和接口,这些类和接口提供了各种功能,如输入/输出操作、网络通信、图形用户界面(GUI)开发等。
  3. 用途
    • JDK
      • 适用于Java开发人员。如果要开发新的Java应用程序、小程序、Web应用、企业级应用等,就需要安装JDK。例如,开发一个基于Java的电商网站后台服务,开发人员需要使用JDK中的工具来编写代码、编译代码,并对代码进行调试。
    • JRE
      • 适用于只需要运行Java程序的用户。比如,用户想要运行一个已经开发好的Java游戏或者一个企业级的Java报表工具,只需要在计算机上安装JRE即可。它就像是一个Java程序的“运行容器”,提供了程序运行所需的基本环境。
  4. 文件大小和资源占用
    • JDK
      • 因为包含了JRE和开发工具,所以文件大小通常比JRE大。例如,JDK 17的安装文件大小可能在几百MB左右,具体大小因版本和操作系统等因素而异。它在安装和运行过程中占用的磁盘空间和系统资源也相对较多。
    • JRE
      • 文件大小相对较小。例如,JRE 17可能只有几十MB到一百多MB的大小。它主要关注于提供运行Java程序的最小环境,所以资源占用相对JDK来说较少。
相关文章
|
3月前
|
Java
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
378 3
|
23天前
|
Java 编译器 API
深入解析:JDK与JVM的区别及联系
在Java开发和运行环境中,JDK(Java Development Kit)和JVM(Java Virtual Machine)是两个核心概念,它们在Java程序的开发、编译和运行过程中扮演着不同的角色。本文将深入解析JDK与JVM的区别及其内在联系,为Java开发者提供清晰的技术干货。
24 1
|
2月前
|
Java
Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)
这篇文章详细分析了Java中HashMap的源码,包括JDK8与JDK7的区别、构造函数、put和get方法的实现,以及位运算法的应用,并讨论了JDK8中的优化,如链表转红黑树的阈值和扩容机制。
35 1
|
2月前
|
Dubbo Java 应用服务中间件
剖析Tomcat线程池与JDK线程池的区别和联系!
剖析Tomcat线程池与JDK线程池的区别和联系!
149 0
剖析Tomcat线程池与JDK线程池的区别和联系!
|
4月前
|
存储 Java
【Java集合类面试七】、 JDK7和JDK8中的HashMap有什么区别?
JDK7中的HashMap使用数组加链表解决冲突,而JDK8增加了红黑树结构以优化链表过长时的性能,提高查找效率。
|
4月前
|
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
63 1
|
4月前
|
C# Windows 开发者
当WPF遇见OpenGL:一场关于如何在Windows Presentation Foundation中融入高性能跨平台图形处理技术的精彩碰撞——详解集成步骤与实战代码示例
【8月更文挑战第31天】本文详细介绍了如何在Windows Presentation Foundation (WPF) 中集成OpenGL,以实现高性能的跨平台图形处理。通过具体示例代码,展示了使用SharpGL库在WPF应用中创建并渲染OpenGL图形的过程,包括开发环境搭建、OpenGL渲染窗口创建及控件集成等关键步骤,帮助开发者更好地理解和应用OpenGL技术。
324 0
|
4月前
|
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。
65 0
|
4月前
|
缓存 Java 编译器
JRE、JDK、JVM 和 JIT 之间的区别详解
【8月更文挑战第22天】
192 0
|
4月前
|
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
81 0
下一篇
DataWorks