jdk安装后,bin目录存放java、javac等可执行工具,需加入path;jre目录含jvm(jre/bin)和核心类库(jre/lib),提供运行环境但无开发功能;lib目录存tools.jar等支持资源,供开发工具和jvm调用。

JDK 安装后,目录结构是理解 Java 开发环境的基础。bin、lib、jre 这三个文件夹承担不同但紧密协作的角色,搞清它们各自存什么、干什么,能帮你准确配置环境变量、排查命令找不到的问题,甚至手动调用工具或分析类库依赖。
bin 目录:所有可执行工具的“操作台”
bin 是 binary 的缩写,里面全是可直接运行的命令行程序(Windows 下为 .exe,Linux/macOS 下为二进制可执行文件)。你日常用的 java(启动 JVM 运行 class)、javac(编译 .java 为 .class)、jar(打包归档)、jps(查看 Java 进程)、jstack(线程快照)等都在这里。
- 必须把
%JAVA_HOME%\bin(Windows)或$JAVA_HOME/bin(macOS/Linux)加入系统 PATH,否则终端敲java -version会提示“命令未找到” - 注意:jre 目录下的 bin 也含
java.exe,但它不带javac等开发工具——那是 JRE 的运行专用版 - 双击 java.exe 没反应是正常的,这些工具专为命令行设计,不是图形界面程序
jre 目录:精简版运行环境,不含编译能力
jre(Java Runtime Environment)是 JDK 内置的运行时子环境,相当于一个“最小可用 Java 运行包”。它包含 JVM(放在 jre/bin 中)和支撑运行所需的核心类库(放在 jre/lib 中),但没有 javac、jar 等开发工具。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- jre/bin 下有
java.exe、javaw.exe(无控制台窗口启动)、javaws.exe(已弃用)等,但绝不会有javac.exe - jre/lib 包含
rt.jar(JDK 8 及以前)或模块化后的modules(JDK 9+),以及ext(扩展机制目录)、security(安全策略配置)等 - JDK 9 起取消独立 jre 目录,改用
jlink工具按需生成定制 JRE,但传统安装包仍保留该结构便于兼容
lib 目录:开发工具与 JVM 的“资源仓库”
lib(library)存放的是 Java 开发和运行所需的各类支持文件,不是可执行程序,而是被 bin 中工具或 JVM 加载使用的资源。
-
tools.jar(JDK 8 及以前):含 javac、javadoc、jdb 等工具的实现类,JVM 启动时由 tools 类加载器加载;JDK 9+ 已模块化,功能整合进jdk.compiler等模块 -
dt.jar(旧版):提供 Swing 组件设计时支持(如 IDE 可视化编辑),现代开发中基本不再使用 -
ant-javac.jar等构建相关依赖(部分版本存在) - JDK 11+ 的 lib 目录还包含
src.zip的对应源码模块映射,以及jmods文件夹(存放 jmod 格式模块文件,供 jlink 使用)
理解这三个目录的分工,你就知道为什么配置环境变量只加 bin、为什么运行程序不需要 lib 里的 jar 却要 jre/lib 支持、以及为何卸载 JDK 后旧项目还能跑——只要 jre 还在,class 就能运行。










