Rocky8.5安装tomcat9(jdk使用jdk17版)

时间:2025-04-14 18:14:57

安装和之前的类似,注意几个细节即可,jre目录需要手动生成,tomcat9对8以上的高版本jre支持比较繁琐,对高版本jdk的支持还是可以的。指定环境变量时需要注意。

1.安装jdk17

使用下面的命令下载安装

如果是安装8u202以上,11版本,因版权问题,建议使用openjdk,redhat编译版jdk

#先下载jdk17这里是jdk-17_linux-x64_bin.

cp jdk-17_linux-x64_bin. /usr/local/
cd /usr/local/
tar -zxvf jdk-17_linux-x64_bin.
rm jdk-17_linux-x64_bin.

默认jdk17没有jre目录,我们需要生成jre目录

cd /usr/local/jdk-17.0.6/bin
./jlink --module-path jmods --add-modules  --output ../jre

若jre要支持tomcat启动,打包模块要比上面的这个多

./jlink --module-path jmods --add-modules ,,,,,,, --output ../jre

如果还提示类找不到,一般是缺少模块,可通过jshell命令查找所属模块

jshell
Module module = ();
#Module module = ();
String moduleName = ();
(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/:$JRE_HOME/lib

最后执行下面这个命令,使环境变量生效

source /etc/profile

验证

java -version
javac -version

2.安装tomcat9

这里安装tomcat9.0.71

wget /dist/tomcat/tomcat-9/v9.0.71/bin/apache-tomcat-9.0.
cp apache-tomcat-9.0. /usr/local/
cd /usr/local/
tar -zxvf apache-tomcat-9.0.
rm apache-tomcat-9.0.
mv apache-tomcat-9.0.71 tomcat

配置systemctl启动服务

cd /usr/lib/systemd/system/
nano 

输入如下内容,然后Ctrl+X保存

[Unit]
Description=tomcat
After= 
[Service]
Type=oneshot
ExecStart=/usr/local/tomcat/bin/
ExecStop=/usr/local/tomcat/bin/
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes
[Install]
WantedBy=

设置开机自启&启动&查看状态

systemctl enable 
systemctl start 
systemctl status 

查看状态发现报错

[23725]: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

是tomcat的JAVA_HOME或者JRE_HOME环境变量在tomcat里没配置

编辑$TOMCAT_HOME/bin/或者$TOMCAT_HOME/bin/ 添加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/util/logging/Logger

之后就能正常启动了

systemctl restart 
systemctl status 

改端口

找到文件$TOMCAT_HOME/conf/

找到

<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/