您的位置:首页 >JDK和JRE区别详解:Java运行环境组成
发布于2026-02-21 阅读(0)
扫一扫,手机访问
JDK用于开发Java程序,含javac等工具;JRE仅用于运行,含java.exe和核心类库。装JDK自带JRE,但单独装JRE无法编译代码。

JDK 是用来写 Java 程序的,JRE 是用来跑 Java 程序的——这是最直白、最不会出错的判断标准。
如果你在官网下载安装了 JDK(比如 jdk-21.0.2),安装目录下会自带一个 jre 文件夹:
C:\Program Files\Java\jdk-21.0.2\jre。这个内嵌的
JRE 就是 JDK 能运行自己编译出的 .class 文件的基础。而单独安装的 JRE(如 jre-8u391)只含 java.exe 和运行必需的类库,没有 javac.exe,你双击运行 MyApp.class 没问题,但敲 javac MyApp.java 会直接报错:'javac' is not recognized as an internal or external command。JDK:写代码 → javac 编译 → java 运行 → 调试 → 打包JRE:比如运行某个 Java 写的 PDF 工具、老版 Minecraft 启动器,或企业内部的 Java 报表客户端JRE:一套在 C:\Program Files\Java\jre1.8.0_XXX,另一套在 JDK 目录下的 \jre;它们彼此独立,PATH 指向哪套,java -version 就显示哪套JDK 的 bin 目录下有这些核心工具:javac.exe(编译器)、java.exe(启动器)、jdb.exe(调试器)、javadoc.exe(文档生成);而 JRE 的 bin 目录只有 java.exe、javaw.exe(无控制台窗口版)、keytool.exe(密钥管理)等运行时相关命令。
javac 只存在于 JDK,它把 .java 源文件翻译成 JVM 能读的 .class 字节码java 在 JDK 和 JRE 中都有,但行为一致:加载 .class,调用 JVM 执行JDK 的 bin 加进 PATH,实际执行 java 命令时,它默认会去同级的 jre\bin 下找 jvm.dll —— 不是你以为的“JDK/bin/java.exe 自己干活”JRE 的核心是两样东西:jvm.dll(Windows)或 libjvm.so(Linux) + rt.jar(Java 核心类库,如 java.lang.*、java.util.*)。这些都在 JRE 的 lib 和 bin 下。而 JDK 的 lib 目录还多出 tools.jar(含 javac 的实现类)、dt.jar(设计时支持),这些不参与运行,只服务开发过程。
JRE/lib/rt.jar 是所有 Java 程序运行时都依赖的“基础 API”,没它 new ArrayList<>() 都会 NoClassDefFoundErrorJDK/lib/tools.jar 是 javac 自己的“身体”,但它不在运行时 classpath 里;IDE(如 IntelliJ)会显式引用它来实现语法检查和编译JRE 下的 rt.jar 或 jvm.dll:版本错配会导致 UnsupportedClassVersionError 或 JVM 直接崩溃JVM 本身不是独立安装项,它永远依附于某套 JRE 或 JDK 存在;真正容易被忽略的是:同一台机器上多个 JDK/JRE 共存时,java -version 显示的版本,取决于 PATH 中最先匹配到的 java.exe,而不是你“以为正在用”的那个 JDK。
下一篇:PPT批量添加备注技巧分享
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9