Rocky8.5安装tomcat9(jdk使用jdk17版)
Posted gsls200808
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rocky8.5安装tomcat9(jdk使用jdk17版)相关的知识,希望对你有一定的参考价值。
安装和之前的类似,注意几个细节即可,jre目录需要手动生成,tomcat9不支持8以上的高版本jre,只支持高版本jdk。指定环境变量时需要注意。
1.安装jdk17
使用下面的命令下载安装
如果是安装8u202以上,11版本,因版权问题,建议使用openjdk,redhat编译版jdk
#先下载jdk17这里是jdk-17_linux-x64_bin.tar.gz
cp jdk-17_linux-x64_bin.tar.gz /usr/local/
cd /usr/local/
tar -zxvf jdk-17_linux-x64_bin.tar.gz
rm jdk-17_linux-x64_bin.tar.gz
默认jdk17没有jre目录,我们需要生成jre目录
cd /usr/local/jdk-17.0.6/bin
./jlink --module-path jmods --add-modules java.desktop --output ../jre
若jre要支持tomcat启动,打包模块要比上面的这个多
./jlink --module-path jmods --add-modules java.desktop,java.logging,java.management,java.naming,java.rmi,java.sql,java.security.jgss,java.instrument --output ../jre
如果还提示类找不到,一般是缺少模块,可通过jshell命令查找所属模块
jshell
Module module = java.util.logging.Logger.class.getModule();
#Module module = org.ietf.jgss.GSSException.class.getModule();
String moduleName = module.getName();
System.out.println(moduleName);
/exit
生成的jre目录与bin目录同级
设置环境变量
编辑 /etc/profile,在最后添加
JAVA_HOME=/usr/local/jdk-17.0.6
JRE_HOME=/usr/local/jdk-17.0.6/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/jrt-fs.jar:$JRE_HOME/lib
最后执行下面这个命令,使环境变量生效
source /etc/profile
验证
java -version
javac -version
2.安装tomcat9
这里安装tomcat9.0.71
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.71/bin/apache-tomcat-9.0.71.tar.gz
cp apache-tomcat-9.0.71.tar.gz /usr/local/
cd /usr/local/
tar -zxvf apache-tomcat-9.0.71.tar.gz
rm apache-tomcat-9.0.71.tar.gz
mv apache-tomcat-9.0.71 tomcat
配置systemctl启动服务
cd /usr/lib/systemd/system/
nano tomcat.service
输入如下内容,然后Ctrl+X保存
[Unit]
Description=tomcat
After=network.target mysqld.service
[Service]
Type=oneshot
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
设置开机自启&启动&查看状态
systemctl enable tomcat.service
systemctl start tomcat.service
systemctl status tomcat.service
查看状态发现报错
startup.sh[23725]: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
是tomcat的JAVA_HOME或者JRE_HOME环境变量在tomcat里没配置
编辑$TOMCAT_HOME/bin/catalina.sh或者$TOMCAT_HOME/bin/setclasspath.sh 添加JAVA_HOME和JRE_HOME两个环境变量,内容如下,写在第一段大注释后面即可,大约110行的位置。
export JAVA_HOME=/usr/local/jdk-17.0.6
#export JRE_HOME=/usr/local/jdk-17.0.6/jre
注意,tomcat9支持8以上的高版本jre比较繁琐,只支持高版本jdk,所以jdk8以后的版本不要指定jre目录
若指定了模块较少的jre目录,可能会报找不到 java/util/logging/Logger的错误:Exception in thread "main" java.lang.NoClassDefFoundError: java/util/logging/Logger
之后就能正常启动了
systemctl restart tomcat.service
systemctl status tomcat.service
3.tomcat改端口
找到文件$TOMCAT_HOME/conf/server.xml
找到
<Connector port="8080" protocol="HTTP/1.1"
将port后的值改成对应的端口就OK了
这里改成80即
<Connector port="80" protocol="HTTP/1.1"
4.防火墙放行端口
放行80端口为例
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
访问
http://ip/
以上是关于Rocky8.5安装tomcat9(jdk使用jdk17版)的主要内容,如果未能解决你的问题,请参考以下文章