电脑硬件
电脑软件
操作系统

CentOS7.3配置JDK14.0.2故障记录解决

发布时间:2024-03-31 10:22:55 浏览量:68

因为是本地我直接关闭了防火墙, 以下是基本的防火墙的配置命令

开启

service firewalld start

重启

service firewalld restart

关闭

service firewalld stop

查看防火墙规则

firewall-cmd --list-all

查询端口是否开放

firewall-cmd --query-port=8080/tcp

开放8080端口

firewall-cmd --permanent --add-port=8080/tcp

移除端口

firewall-cmd --permanent --remove-port=8080/tcp

重启防火墙(修改配置后要重启防火墙)

解压

tar -zxvf openjdk-14.0.2_linux-x64_bin.tar.gz

配置环境变量

vim /etc/profile

在内容最下添加 JAVA_HOME是jdk的位置

JAVA_HOME=/usr/local/java/jdk-14.0.2/
CLASSPATH=$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH

保存退出 重新加载环境变量

source /etc/profile

测试java 显示版本号则成功

java -version

弄好tomcat9 启动试试???

sh bin/start.sh

报错如下...

/usr/local/tomcat/apache-tomcat-9.0.13/bin/catalina.sh: line 464: /usr/local/java/jdk-14.0.2/jre/bin/java: No such file or directory

意思是没有jre???

然后用jdk生成jre

cd /usr/local/java/jdk-14.0.2/
jlink --module-path jmods --add-modules java.base --output jre

再次启动tomcat,又报错如下

NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=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:181)
at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:116)
at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:139)
at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:194)
at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:52)

Caused by: java.lang.ClassNotFoundException: java.util.logging.Logger

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) 
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

在/etc/profile文件中指定jre的位置为jdk的位置, tomcat启动失败的问题解决!

我猜是tomcat如果没有在环境变量中找到jre的位置,就会默认到jdk的目录下寻找jre,但是jdk11中已经没有jre了,需要单独生成,但是我不会使用模块化,那就直接指定jre为jdk的位置吧,反正jdk包括jre.(瞎猜瞎猜 都是瞎猜)

/etc/profile文件末添加如下, 解决jre找不到的问题

JAVA_HOME=/usr/local/java/jdk-14.0.2/
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=$JAVA_HOME/lib
PATH=$JRE_HOME/bin:$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH

Copyright © 2012-2024 你我谈信息网 版权所有

湘ICP备12002647号-4 XML地图

站长联系时间:
周一至周日 9:30-18:00

QQ:68175102

Copyright © 2012-2024 你我谈信息网 版权所有

湘ICP备12002647号-4