在 Linux 服务器上运行 Java Spring Boot 应用,至少需要以下核心配置:
1. Java 运行时环境(JDK)
- 安装与项目编译版本匹配的 JDK(推荐 JDK 8、11、17 或 21)。
- 验证安装:
java -version javac -version # 可选,若仅运行可省略 - 设置
JAVA_HOME(部分系统需手动配置):export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
2. Spring Boot 可执行 JAR 文件
- 通过
mvn clean package或gradle bootJar打包生成带内嵌容器的.jar文件。 - 确保 JAR 包含所有依赖(即使用
spring-boot-maven-plugin的repackage目标)。
3. 启动命令
最小化启动方式(无需额外配置文件时):
java -jar your-app.jar --server.port=8080 --spring.profiles.active=prod
✅ 注意:生产环境建议避免硬编码端口/Profile,改用外部配置或环境变量。
🔧 推荐补充(非绝对必需但强烈建议)
| 类别 | 说明 |
|---|---|
| 日志配置 | 提供 application.yml 或 logback-spring.xml 控制日志级别、输出路径(如 /var/log/app.log) |
| 环境变量 | 敏感信息(DB 密码、密钥)通过 -D 参数或 env 注入:export SPRING_DATASOURCE_PASSWORD=xxx && java -jar app.jar |
| 进程守护 | 使用 systemd 服务管理(替代 nohup),实现开机自启、崩溃重启、日志轮转等 |
| 防火墙/安全组 | 开放对应端口(如 8080),并限制来源 IP(生产环境必备) |
| 资源限制 | 设置 JVM 堆内存(如 -Xms512m -Xmx2g),防止 OOM |
⚠️ 常见误区
- ❌ 仅安装 JRE 不够 → 必须 JDK(即使只运行,某些 SPI 机制也需编译工具链支持)
- ❌ 直接
java -cp运行未重打包的 JAR → 会因缺少内嵌 Tomcat 而报错 - ❌ 忽略时区/字符集 → 导致时间戳错乱或中文乱码(建议显式设置
-Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8)
需要我提供一个完整的 systemd 服务示例或 Docker 部署方案吗?
CLOUD技术博