【jdk12.0.1里面没有jre,如何解决?】在使用 JDK(Java Development Kit)时,很多开发者会发现某些版本的 JDK 中不再包含 JRE(Java Runtime Environment)。例如,JDK 12.0.1 就是这样一个例子。这可能会让一些用户感到困惑,因为传统的 JDK 包含了 JRE,而现在的 JDK 可能只提供 JDK 工具,不包括运行环境。本文将对此现象进行总结,并提供可行的解决方案。
一、问题概述
JDK 是 Java 开发工具包,主要用于开发 Java 应用程序,它包含了编译器、调试工具等开发所需组件。而 JRE 是 Java 运行时环境,用于执行 Java 程序。从 JDK 9 开始,Oracle 对 JDK 的结构进行了调整,将 JRE 拆分出去,使得部分 JDK 版本不再自带 JRE。
因此,在 JDK 12.0.1 中,用户可能无法直接找到 `jre` 文件夹或相关运行环境,这可能导致一些依赖 JRE 的应用无法正常运行。
二、解决方案总结
问题 | 解决方案 |
JDK 12.0.1 不包含 JRE | 下载并安装独立的 JRE 或使用 OpenJDK 提供的完整版本 |
需要运行 Java 应用但没有 JRE | 使用 `jlink` 工具创建自定义的 JRE |
开发环境需要同时使用 JDK 和 JRE | 安装完整的 JDK 包(如 OpenJDK 12) |
项目依赖 JRE 但找不到 | 检查系统环境变量是否正确配置 |
三、详细说明
1. 下载独立的 JRE
虽然 JDK 12.0.1 不包含 JRE,但你可以从 Oracle 或 OpenJDK 官方网站下载单独的 JRE。例如:
- Oracle JRE:[https://www.oracle.com/java/technologies/javase-jre8-downloads.html](https://www.oracle.com/java/technologies/javase-jre8-downloads.html)(注意:JRE 8 是最后一个官方支持的版本)
- OpenJDK JRE:可以使用 [Adoptium](https://adoptium.net/) 或 [Azul Zulu](https://www.azul.com/downloads/zulu/) 提供的 JRE
2. 使用 `jlink` 创建自定义 JRE
如果你只需要运行特定的应用程序,可以使用 JDK 自带的 `jlink` 工具生成一个轻量级的 JRE:
```bash
jlink --module-path $JAVA_HOME/lib/modules --add-modules java.desktop --output myjre
```
该命令会生成一个包含必要模块的 JRE,适用于部署和运行。
3. 安装完整的 JDK
如果你希望同时拥有 JDK 和 JRE,可以选择安装包含完整 JRE 的 JDK 版本。例如,OpenJDK 的某些发行版(如 Adoptium)会提供完整的 JDK 包,其中包含 JRE。
4. 配置环境变量
确保你的 `JAVA_HOME` 和 `PATH` 环境变量指向正确的 JDK 或 JRE 路径。如果系统中存在多个 Java 版本,建议使用 `java -version` 和 `javac -version` 命令确认当前使用的版本。
四、总结
JDK 12.0.1 不再包含 JRE 是由于 Oracle 对 JDK 结构的优化调整。为了解决这一问题,可以通过下载独立的 JRE、使用 `jlink` 工具构建自定义运行环境、安装完整的 JDK 发行版等方式来满足需求。合理配置环境变量也能有效避免因路径错误导致的问题。
如果你不确定应选择哪种方式,建议优先考虑使用 OpenJDK 的完整发行版,以确保开发和运行环境的一致性与稳定性。