在 CentOS 上运行 Tomcat 报错的原因非常多,不能一概而论。下面我按最常见场景帮你梳理一下,你可以对照看是哪一种。
java.net.BindException: Address already in use
# 查看端口占用
netstat -tunlp | grep 8080
# 或
ss -tunlp | grep 8080
# 杀掉进程
kill -9 PID
或修改 conf/server.xml 端口。
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
java -version
安装 JDK(示例):
yum install java-1.8.0-openjdk-devel -y
配置:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
Permission denied
chown -R tomcat:tomcat /opt/tomcat
或:不要用 root 跑 Tomcat
getenforce
setenforce 0
永久关闭(不推荐生产):
vi /etc/selinux/config
SELINUX=disabled
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
tail -f logs/catalina.out
java.lang.OutOfMemoryError
修改 bin/catalina.sh:
JAVA_OPTS="-Xms512m -Xmx1024m"
tail -n 100 logs/catalina.out
如果你愿意,可以:
我可以直接帮你精准定位原因。