在Java开发中JRE和JDK有什么区别_Java运行与开发环境说明

发布时间 - 2026-01-04 00:00:00    点击率:
JDK是面向开发者的完整工具包,含编译器、调试器等,能编译调试运行Java程序;JRE仅面向运行环境,只含JVM和类库,只能运行已编译的.class文件;JDK内置JRE,结构更全,适用开发场景,JRE更轻量,适用于生产部署。

JRE和JDK最核心的区别在于:JDK是给开发者用的,它能编译、调试、运行Java程序;JRE只负责运行已编译好的Java程序,不带任何开发能力。

功能定位不同:开发 vs 运行

JDK(Java Development Kit)是一套完整的开发工具包,面向程序员。它包含编译器(javac)、调试器(jdb)、文档生成器(javadoc)、打包工具(jar)等,用于从写代码到发布全流程。

JRE(Java Runtime Environment)是运行环境,面向普通用户或部署服务器。它只含Java虚拟机(JVM)和Java标准类库(如rt.jar),用来加载、校验、执行.class字节码文件。

  • 写.java源文件 → 必须用JDK中的javac编译成.class → 这一步JRE做不到
  • 运行已有的.class或.jar文件 → JRE就够了,不需要javac或其他开发工具
  • 开发中常需反复编译+运行+调试 → JDK自带JRE,所以装了JDK就自动具备运行能力

组成结构不同:JDK包含JRE

JDK内部其实就“裹着”一套JRE——通常在jdk/jre/目录下。也就是说,JDK = JRE + 开发工具集(bin目录下的各种.exe/.sh命令)+ 头文件(include)+ 工具类库(tools.jar)。

立即学习“Java免费学习笔记(深入)”;

JRE本身结构精简,只有两个关键部分:

  • bin/:含java启动器和JVM(如jvm.dlllibjvm.so
  • lib/:含核心类库(rt.jarext/扩展包等)

如果你在系统里同时装了独立JRE和JDK,很可能看到两套JRE目录:一套在C:\Program Files\Java\jreX,另一套在C:\Program Files\Java\jdkX\jre,内容基本一致。

安装与使用场景不同

日常开发必须装JDK,IDE(如IntelliJ、Eclipse)底层依赖它的编译器和调试接口;而生产服务器若只部署现成的Spring Boot jar包,只需JRE即可,更轻量、更安全(少暴露开发工具面)。

  • 学生写第一个HelloWorld → 装JDK,配好JAVA_HOMEPATH
  • 公司内网终端运行一个Java报表工具 → 只装JRE,省空间、免误操作
  • Docker镜像优化 → 基于eclipse-jreamazoncorretto-jre比用jdk镜像体积小50%以上

怎么确认自己装的是哪个?

打开终端,运行:

java -version   # 显示JRE版本信息(所有情况都可用)
javac -version # 若提示“command not found”,说明没装JDK或未配置PATH

再看安装路径:

  • 路径含jdk字样(如jdk-17.0.2)→ 是JDK
  • 路径含jre字样(如jre1.8.0_391)→ 是纯JRE
  • JDK安装后,jdk/bin/javajdk/jre/bin/java其实是同一个可执行文件的两个软链接或副本,优先走jdk/bin(因PATH通常指向此处)


# java  # docker  # 字节  # 虚拟机  # 工具  # eclipse  # java虚拟机  # 区别  # 开发环境  # java开发 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用西部建站助手快速创建专业网站?  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  Swift中循环语句中的转移语句 break 和 continue  中国移动官方网站首页入口 中国移动官网网页登录  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  教你用AI将一段旋律扩展成一首完整的曲子  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  零服务器AI建站解决方案:快速部署与云端平台低成本实践  用yum安装MySQLdb模块的步骤方法  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Laravel如何使用withoutEvents方法临时禁用模型事件  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  网站制作软件有哪些,制图软件有哪些?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  详解jQuery中基本的动画方法  java中使用zxing批量生成二维码立牌  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Laravel Session怎么存储_Laravel Session驱动配置详解  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  网站图片在线制作软件,怎么在图片上做链接?  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何用好域名打造高点击率的自主建站?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  轻松掌握MySQL函数中的last_insert_id()  在centOS 7安装mysql 5.7的详细教程  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  Laravel如何实现用户密码重置功能?(完整流程代码)  Laravel如何与Inertia.js和Vue/React构建现代单页应用  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  node.js报错:Cannot find module 'ejs'的解决办法  实例解析Array和String方法  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  网站制作免费,什么网站能看正片电影?  高性价比服务器租赁——企业级配置与24小时运维服务  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  如何利用DOS批处理实现定时关机操作详解  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel如何保护应用免受CSRF攻击?(原理和示例)  高防服务器租用如何选择配置与防御等级?  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何用y主机助手快速搭建网站?  Android使用GridView实现日历的简单功能  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  如何注册花生壳免费域名并搭建个人网站?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?