Java11之后的jdk到底要不要生成jre目录?

今天遇到一个tomcat闪退问题,tomcat版本是10,java版本是17。

在网上查了很多资料,发现是tomcat的JRE_HOME路径设置错误,或者没有设置。CATALINA_HOME目录也要设置。CATALINA_HOME目录很好设置,就是tomcat安装路径。

可是java1之后,下载jdk就没有jre目录了,于是继续查,发现有一个命令可以在jdk安装路径下生成jre目录 。

bash 复制代码
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre

于是使用这条命令生成jre目录。在启动tomcat的startup.bat文件中设置JRE_HOME的路径

bash 复制代码
set JRE_HOME=C:\Users\Administrator\Desktop\test\jdk17\jre
set CATALINA_HOME=C:\Users\Administrator\Desktop\test\apache-tomcat-8.5.99

启动tomcat,还是失败,依旧闪退。

试了很多办法,都没有效果,然后试着把jre路径删除了,只保留到jdk17:

bash 复制代码
set JRE_HOME=C:\Users\Administrator\Desktop\test\jdk17
set CATALINA_HOME=C:\Users\Administrator\Desktop\test\apache-tomcat-8.5.99

启动tomcat,成功。

这我就很疑惑了,为什么写道jdk17那一级目录就可以,而写道jre目录就错误呢?

于是我又下载了一个jdk8版本的java,在jdk8里面自动包含jre目录

于是,我将tomcat启动文件修改成:

bash 复制代码
set JRE_HOME=C:\Users\Administrator\Desktop\test\jdk8\jre
set CATALINA_HOME=C:\Users\Administrator\Desktop\test\apache-tomcat-8.5.99

启动tomcat,成功。

结合1.8的情况,看来不是路径的问题,如果有jre,应该写道jre这一层。

所以我在想java设计者既然在java9之后就不提供jre的下载了,是不是手动生成jre这种方式本质上就错了。

于是我删除了jdk17里面的jre文件,在启动tomcat是startup.bat文件里面仍要设置JRE_HOME。

bash 复制代码
set JRE_HOME=C:\Users\Administrator\Desktop\test\jdk17
set CATALINA_HOME=C:\Users\Administrator\Desktop\test\apache-tomcat-8.5.99

还是设置成没有jre一级目录,现在jre文件夹也删除了。

启动tomcat,成功。

在JDK 11中,JRE已经被整合到JDK中,所以不再需要单独配置JRE

相关推荐
wuyk55537 分钟前
104.C 语言字节对齐:从底层原理到工程实践的完整指南
c语言·开发语言·stm32·单片机·嵌入式硬件
ZYJCSZKJ40 分钟前
基于地理位置围栏的短视频POI团购系统:LBS空间索引与流量分发实践
java·服务器·数据库
mldong6 小时前
引擎从不发一条消息:jeeflow 的两类扩展点与消息模块的分工
java·架构
君顾17 小时前
智慧零售实战指南:从技术架构到落地方案全解析
java·开发语言·零售
南棱笑笑生7 小时前
20260904实测给飞凌OK3576-C开发板刷入Rockchip原厂的IMG固件【使用飞凌的DTS】切换串口波特率为1.5Mbps
c语言·开发语言·rockchip
zhanghe6877 小时前
es的密码带有特殊字符,导出
java
平头哥技术团队7 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
pnoker7 小时前
IoT DC3 概念解读:把设备抽象成一套语义模板——位号、指令、事件与面向智能体的设备建模
java·人工智能·物联网·iot·dc3
乌萨奇也要立志学C++7 小时前
【洛谷】kmp算法
开发语言·算法
my_realmy7 小时前
Java SE 基础学习笔记(一):面向对象、继承多态、抽象接口与异常(JDK 8)
java·多线程·并发··生产者消费者模式