java jdk12,安装路径没有jre文件夹

(平台备注:win10系统,自测)

1.造成原因:JDK11之后没有直接的jre,要用户选择jre模块

2.如果需要,执行以下步骤可生成:

    2.1 进入jdk安装目录下,

    2.2 点击shift+右键,在此处打开命令窗口,然后执行如下命令:
       bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre

 

    2.3 查看结果:

 

<think>好的,我需要回答用户关于JDK 17不再包含JRE文件夹的原因及替代方案的问题。首先,我得先理解用户的问题。用户注意到JDK 17移除了JRE文件夹,想知道背后的原因以及如何处理相关问题。 根据提供的引用资料,特别是引用[2]提到JDK包含JRE,因为开发人员需要运行和调试环境。但现在JDK 17不再自带JRE,这可能与模块化或优化有关。我需要确认JDK 17的变化,比如是否引入了模块化系统,允许用户按需构建自定义运行时镜像,这样就不需要默认的JRE了。 接下来,查看引用[3]提到的国产JDK如毕昇JDK等,可能它们也有不同的处理方式,但用户主要关注官方JDK的情况。另外,引用[4]提到的并发包可能与问题无关,但需要注意不要混淆。 用户可能想知道如何在没有JRE的情况下运行程序,是否需要单独安装JRE,或者是否有替代方案。根据知识库,JDK中的工具如jlink可以用来创建定制的JRE,这可能是一个解决方案。另外,Java 9引入的模块化系统(Jigsaw项目)可能是导致这一变化的原因,因为它允许更灵活地构建运行时环境。 需要确认JDK 17的官方文档是否移除了JRE,并解释原因:模块化后,用户按需构建,减少冗余。然后,处理方案包括使用jlink生成自定义JRE,或者直接使用JDK中的JRE功能,因为JDK本身仍然包含运行Java程序所需的组件,只是不再单独提供完整的JRE文件夹。 还要考虑用户可能遇到的常见问题,比如如何在没有JRE的情况下部署应用程序,是否需要引导用户使用jpackage或其他工具打包应用,包含必要的运行时。 最后,总结原因和解决方案,确保回答清晰,分点列出,引用相关引用资料,比如引用[2]和[3]来支持解释。</think>### JDK 17 不再包含 JRE 文件夹的原因及替代方案 #### **原因分析** 1. **模块化设计(JPMS)的引入** Java 9 开始引入模块化系统(Java Platform Module System, JPMS),允许开发者按需裁剪运行时环境。JDK 17 进一步优化了这一设计,不再默认提供完整的JRE文件夹,而是通过工具(如 `jlink`)生成定制化的运行时镜像[^2][^3]。这一变化减少了冗余文件,提升了灵活性和资源利用率。 2. **开发与运行环境的整合** JDK 始终包含运行Java程序的核心组件(如 `java` 命令),因此即使没有独立的JRE文件夹JDK仍可直接运行程序。Oracle认为开发者更倾向于直接使用JDK进行开发、调试和部署,无需额外维护JRE。 3. **简化分发流程** 移除独立JRE文件夹后,开发者需主动构建适合应用的最小化运行时环境。这降低了默认安装体积,也避免了不同版本JRE可能导致的兼容性问题。 --- #### **替代方案** 1. **使用 `jlink` 生成定制JRE** JDK 17 提供了 `jlink` 工具,可根据项目依赖的模块生成精简的JRE。例如: ```bash jlink --add-modules java.base,java.sql --output my_custom_jre ``` 生成的 `my_custom_jre` 仅包含指定模块,适合嵌入式或容器化部署。 2. **直接使用JDK中的运行命令** JDK的 `bin` 目录包含 `java`、`javac` 等命令,可直接运行程序: ```bash /path/to/jdk-17/bin/java -jar app.jar ``` 3. **第三方JRE分发(如企业版JDK)** 部分厂商(如华为毕昇JDK、阿里Dragonwell)可能提供包含JRE的企业版JDK,适合需要完整运行环境的场景[^3]。 --- #### **常见问题处理** - **部署问题**:若需在服务器部署,建议通过 `jlink` 生成定制JRE,或直接使用JDK的 `java` 命令。 - **IDE配置**:在Eclipse/IntelliJ中,需将JDK 17路径设置为“Installed JRE”(如 `JDK_HOME`),IDE会自动识别其运行时组件。 ---
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值