在 Linux 上运行 Swagger 出错 可能原因很多,下面按最常见场景给你一个排查思路。你可以对照看看,也可以把具体报错贴出来,我帮你精确定位。
常见有 3 种:
不同情况,解决方法不一样。
报错示例:
EADDRINUSE: address already in use :::8080
解决:
# 查看端口占用
lsof -i:8080
# 杀掉进程
kill -9 PID
或换个端口:
java -jar swagger.jar --server.port=9090
报错示例:
java: command not found
解决:
java -version
如果没有 Java:
# Ubuntu / Debian
sudo apt update
sudo apt install openjdk-17-jdk
# CentOS
sudo yum install java-17-openjdk
⚠ Swagger 2.x 推荐 Java 8–17
报错示例:
Permission denied
解决:
chmod +x swagger.jar
# 或
sudo ./swagger
可能原因:
Spring Boot 常见正确路径:
http://localhost:8080/swagger-ui.html
或
http://localhost:8080/swagger-ui/index.html
如果是 springdoc-openapi:
http://localhost:8080/swagger-ui.html
现象:
解决:
# 查看防火墙
sudo ufw status
# 开放端口
sudo ufw allow 8080
或 CentOS:
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
报错示例:
Cannot find module 'swagger-ui-express'
解决:
rm -rf node_modules package-lock.json
npm install
报错示例:
docker: command not found
解决:
docker ps
docker logs 容器ID
或使用:
docker run -p 8080:8080 swaggerapi/swagger-ui
请直接把下面信息发我,我能立刻判断:
cat /etc/os-release
Linux 上 Swagger 出错,90% 是 Java / 端口 / 权限 / 防火墙问题。
你可以直接贴报错,我帮你一步步修 ✅