JDK11安装完成后没有jre目录

异常

JDK11 安装之后目录下是没有 jre 文件夹的:
在这里插入图片描述

原因

因为在 Java 8 之后在安装 jdk 时便不再提供 jre 包安装,而是让我们根据自己的需要自行的安装。

解决

在 JDK 11 的安装目录下的文件导航栏直接输入 cmd,打开命令行窗口。也可以通过其他方式打开命令行窗口,然后跳转到该目录下。
在这里插入图片描述在这里插入图片描述接着输入生成 jre 文件夹:

# 在当前目录下调用 bin 目录下的 jlink.exe 程序,生成 jre 文件夹,该文件夹也应该存放在 JDK 的安装目录下
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre

在这里插入图片描述

<think>嗯,用户的问题是关于JDK 11安装没有JRE的原因以及如何处理。首先,我需要回想一下JDK各个版本的变化,特别是从JDK 8到JDK 11的演变。根据之前的引用,比如引用[1]提到JDK 9和10中,如果设置了系统属性或者目录存在,javac和java会退出,而JDK 11中某些选项已经过时。这可能与模块化的引入有关。 然后,用户提到JDK 11安装后缺少JRE,这可能是因为从JDK 9开始引入了模块化系统,JREJDK的结构发生了变化。在之前的版本中,比如JDK 8,安装时会自动生成JRE目录,但之后的版本可能不再这样做。需要确认这一点是否正确,并且是否有官方文档支持。 接下来,解决方案部分可能需要用户手动生成JRE。我记得在JDK 9之后,可以使用jlink工具来创建自定义的运行时镜像,或者使用jmods目录中的模块来生成JRE。例如,通过命令`jlink`来构建,或者使用`jdk.jlink`模块。可能需要具体步骤,比如在命令行中运行什么命令,参数是什么,以及需要注意哪些路径。 另外,用户可能对如何验证是否成功生成JRE感兴趣,可能需要指导他们检查目录结构或者运行java -version命令。还要考虑用户是否了解模块化系统的概念,是否需要简要解释为什么JDK 11不再默认包含JRE,比如模块化带来的变化和优化。 此外,引用[2]提到安装JDK 1.8时会检测已有JRE,可能用户之前安装过旧版本JDK,导致问题。但在JDK 11的情况下,可能结构变化更大,需要单独处理。用户的问题可能源于升级后环境变量未正确配置,或者未生成JRE导致应用程序无法运行。 需要确保回答准确,步骤清晰,并且引用正确的来源,比如引用[1]中提到的JDK 11的变化,说明官方已经废弃了某些目录和选项,导致JRE不再默认安装。同时,解决方案部分需要提供具体命令,例如使用`bin\jlink.exe`生成JRE,并指出生成后的位置。 可能还需要提醒用户注意环境变量设置,确保生成的JRE被正确引用。同时,解释原因时要简明扼要,让用户明白模块化带来的改变,以及Oracle的决策背后的原因,比如减少冗余和提高灵活性。 最后,检查是否有遗漏的细节,比如是否所有JDK 11版本都如此,或者是否有例外情况,是否需要管理员权限运行命令等。确保回答覆盖用户的问题,并且步骤可行,避免技术术语过多,保持易懂。</think>### JDK 11安装后缺少JRE的原因及解决方案 #### 原因分析 1. **模块化设计** 从JDK 9开始,Java引入了模块化系统(JPMS),JDK 11进一步优化了这一设计。**JRE不再作为独立组件默认生成**,而是通过模块化方式按需构建[^1]。 例如: ```bash # JDK 11目录结构示例 jdk-11.0.x/ ├── bin/ ├── conf/ ├── lib/ # 核心库和模块化组件 └── jmods/ # 模块化文件(替代传统JRE) ``` 2. **精简安装包** Oracle官方从JDK 11起**取消自动生成独立JRE目录**,以减少冗余文件。若需JRE,需手动生成[^1]。 --- #### 解决方案 1. **手动生成JRE** 使用JDK内置工具`jlink`创建自定义运行时镜像: ```bash bin\jlink.exe --module-path jmods --add-modules java.base,java.desktop,java.sql --output jre-11-custom ``` - `--add-modules`指定所需模块(如`java.desktop`包含GUI支持) - 生成目录`jre-11-custom/`即为自定义JRE 2. **验证生成结果** ```bash jre-11-custom\bin\java -version ``` 输出应包含`Java(TM) SE Runtime Environment (build 11.0.x)`字样。 3. **兼容性配置** - 设置环境变量`JAVA_HOME`指向JDK安装目录 - 将自定义JRE路径加入`PATH`(例如`PATH=%JAVA_HOME%\jre-11-custom\bin;...`) --- #### 注意事项 - **多版本共存**:若需同时使用JDK 8和JDK 11,需分别配置环境变量(参考引用[2]的版本共存原则) - **模块依赖**:使用`jlink`时需明确添加所有依赖模块,可通过`java --list-modules`查看可用模块 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值