Swagger 在 Debian 上“报错”通常不是 Swagger 本身的问题,而是运行环境、依赖或配置在 Debian 下和你在本地(如 macOS / Windows)不一致导致的。下面按最常见原因给你一个排查清单,你可以对照看看是哪一种。
Swagger 2(springfox)不支持 Java 17+,而 Debian 12 默认就是 Java 17。
报错示例
java.lang.TypeNotPresentException
java.lang.NoClassDefFoundError: javax/xml/bind
✅ 解决:
# 查看版本
java -version
# 安装 Java 11
apt install openjdk-11-jdk
或改用 springdoc-openapi(推荐):
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
</dependency>
如果你在 Debian 上跑 Swagger Editor / Swagger UI(Node 项目):
常见报错:
error while loading shared libraries
node: command not found
✅ 解决:
apt update
apt install -y nodejs npm
node -v
Debian 默认安全策略更严格。
比如:
/tmp✅ 解决:
# 不要 root 跑
chown -R appuser:appuser /opt/app
# 或用反向代理
nginx -> localhost:8080
Windows/macOS 不区分大小写,Debian 区分。
❌ 错误:
@RequestMapping("/Swagger")
但访问的是 /swagger
✅ 解决: 统一小写路径
Swagger UI 打不开,但接口能通。
ufw allow 8080
swagger:
location: C:\swagger\api.yaml
✅ Debian 要用:
location: /opt/swagger/api.yaml
请贴出以下信息,我可以精准判断:
cat /etc/os-release
✅ 新项目直接用
springdoc-openapi + Spring Boot 3 + Java 17
❌ 不建议:
Springfox Swagger 2 + Java 17
如果你愿意,把报错日志直接贴出来,我可以一行一行帮你分析。