指定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
相关推荐
渡我白衣2 分钟前
Acceptor模块的设计与实现
java·linux·服务器·开发语言·网络·c++·人工智能
沫璃染墨16 分钟前
《从零入门Linux系统篇(二十八):文件篇·一——Linux为什么“万物皆文件”:从C语言文件流到系统调用》
linux·运维·服务器·开发语言·c++·文件
luteres2 小时前
Mybatis+SSM整合笔记
java·开发语言·mybatis
郝学胜-神的一滴2 小时前
《C++11 工程级应用01:告别冗长类型,开启简洁高效编码新时代》深度解读
开发语言·c++·算法·软件开发·系统设计
其实防守也摸鱼2 小时前
推荐一个自动化教育SRC漏洞挖掘系统--AutoHunter
运维·开发语言·人工智能·学习·安全·web安全·自动化
覆东流8 小时前
7.Java数组
java·开发语言·后端
m0_719084118 小时前
限流和获取请求ip的方法
java
码行山野赴时序归途9 小时前
三道经典数组题:从暴力到最优的算法思维
c语言·开发语言·数据结构·算法·leetcode
lzhdim9 小时前
提高 SQL 语句执行速度的方法
java·开发语言·数据库·sql·oracle
JavaPub-rodert9 小时前
王仕宇在 Go Context 如何解决协程泄漏与超时控制
开发语言·后端·golang·iphone·javapub·王仕宇