指定Tomcat运行的JDK地址

JAVA_HOME:指向 JDK 安装目录,识别 Java 运行时。

JRE_HOME:通常由 JAVA_HOME 自动推导,手动设置可能导致冲突,因此建议使用 unset 清除。

命名为setenv.sh,放在 tomcat/apache-tomcat-9.0.111/bin 目录下

bash 复制代码
export JAVA_HOME=/data/soft/jdk-21.0.2
unset JRE_HOME

1,适用于类似这种缺少模块的报错

bash 复制代码
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.b
ase/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java
.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
WARNING: Unknown module: java.rmi specified to --add-opens
Exception in thread "main" java.lang.NoClassDefFoundError: java/util/logging/Logger
at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:61)
at org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:176)
at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:115)
at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:136)
at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:185)
at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:47)
Caused by: java.lang.ClassNotFoundException: java.util.logging.Logger
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 6 more

2, Java 无法运行

bash 复制代码
We cannot run Java, please ensure you have Java installed.
We have tried to execute /data/soft/jdk-21.0.2/bin/java but failed.
If you have installed Java in a unusual place you can set JAVA_HOME
相关推荐
迪丽热爱3 分钟前
一、C语言概述与程序结构
c语言·开发语言·算法
HUIBUR科技19 分钟前
AI中枢:打破数据孤岛与流程孤岛双重困境
开发语言·ai
鱼宵31 分钟前
LangChain4j 结构化输出:让模型吐出 Java 对象,JSON 不再手写解析
java·开发语言·json·langchain4j
w2sfot44 分钟前
【JS加密在线】jsjiami.online(让JavaScript 更安全!)
开发语言·javascript·安全
HSunR44 分钟前
ruoyi 若依 自定义注解 参数校验
java·前端·数据库
Wang's Blog1 小时前
Java 项目部署之 Docker工具快速入门: Docker 是什么以及它如何解决部署环境问题
java·开发语言·docker
老木避暑研究所1 小时前
从原始数据到洞察:一次完整的避暑房环境数据采集、清洗与可视化分析
java·开发语言
程序喵大人1 小时前
【C++入门】编译链接模型 - 05 ODR 为什么会让重复定义变成工程炸点
开发语言·c++·编译链接·odr
weixin199701080162 小时前
《淘宝TOP API:落地方案、接口边界与业务踩坑 —— 聚石塔内外价差 10 倍的真相》(附 Python 源码)
开发语言·python