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来说较少。
相关文章
|
2月前
|
安全 Oracle Java
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
199 0
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
|
4月前
|
存储 算法 Java
JvM JDK JRE 三者区别与联系详解
本文深入解析了Java编程中的三个核心概念:JVM(Java虚拟机)、JDK(Java开发工具包)和JRE(Java运行环境)。JVM是执行Java字节码的虚拟计算机,实现“一次编译,到处运行”;JDK包含JRE及开发工具,用于编写和调试Java程序;JRE负责运行已编译的Java程序。文章详细阐述了它们的功能、组成及应用场景,并通过实例说明其在实际开发中的作用,帮助开发者理解三者联系与区别,提升开发效率与问题解决能力。适合Java初学者及进阶开发者学习参考。
595 3
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
1040 61
|
4月前
|
监控 Oracle Java
JVM JDK JRE 使用指南及组件封装方法详解
本指南全面介绍了JVM、JDK、JRE的使用方法与Java组件封装技巧。内容涵盖JDK安装配置、JRE使用、JVM参数调优(如堆内存设置和垃圾回收器选择),以及类、包的封装实践。通过示例展示工具类与数据访问组件的封装方法,并讲解JAR包创建与发布流程。此外,还提供了常见问题解决方案,如内存溢出处理和依赖冲突管理。帮助开发者掌握高效、规范的Java开发技能,提升代码复用性和可维护性。附带面试资料供进一步学习。
177 0
|
7月前
|
Java Spring
JDK动态代理和CGLIB动态代理的区别
Spring AOP中的动态代理主要有两种方式,JDK动态代理和CGLIB动态代理: ● JDK动态代理只提供接口的代理,不支持类的代理Proxy.newProxyInstance(类加载器, 代理对象实现的所有接口, 代理执行器) ● CGLIB是通过继承的方式做的动态代理 , 如果某个类被标记为final,那么它是无法使用 CGLIB做动态代理的。Enhancer.create(父类的字节码对象, 代理执行器)
|
11月前
|
Java 编译器 API
深入解析:JDK与JVM的区别及联系
在Java开发和运行环境中,JDK(Java Development Kit)和JVM(Java Virtual Machine)是两个核心概念,它们在Java程序的开发、编译和运行过程中扮演着不同的角色。本文将深入解析JDK与JVM的区别及其内在联系,为Java开发者提供清晰的技术干货。
201 1
|
12月前
|
Java
Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)
这篇文章详细分析了Java中HashMap的源码,包括JDK8与JDK7的区别、构造函数、put和get方法的实现,以及位运算法的应用,并讨论了JDK8中的优化,如链表转红黑树的阈值和扩容机制。
176 1
|
12月前
|
Dubbo Java 应用服务中间件
剖析Tomcat线程池与JDK线程池的区别和联系!
剖析Tomcat线程池与JDK线程池的区别和联系!
419 0
剖析Tomcat线程池与JDK线程池的区别和联系!
|
C# Windows 开发者
当WPF遇见OpenGL:一场关于如何在Windows Presentation Foundation中融入高性能跨平台图形处理技术的精彩碰撞——详解集成步骤与实战代码示例
【8月更文挑战第31天】本文详细介绍了如何在Windows Presentation Foundation (WPF) 中集成OpenGL,以实现高性能的跨平台图形处理。通过具体示例代码,展示了使用SharpGL库在WPF应用中创建并渲染OpenGL图形的过程,包括开发环境搭建、OpenGL渲染窗口创建及控件集成等关键步骤,帮助开发者更好地理解和应用OpenGL技术。
1058 0
|
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。
176 0