在 Linux 服务器上部署 Java 程序,通常需要准备以下基础环境和依赖。具体需求会根据你的项目类型(如 Spring Boot 应用、传统 WAR 包、微服务等)略有差异,但核心组件如下:
✅ 一、核心基础环境
1. JDK(Java Development Kit)
- 推荐版本:根据项目要求选择 JDK 8、11、17 或 21(LTS 版本优先)。
-
安装方式:
- 使用系统包管理器(如
apt/yum):# Ubuntu/Debian sudo apt update && sudo apt install openjdk-17-jdk
CentOS/RHEL
sudo yum install java-17-openjdk-devel
- 或使用 [Adoptium](https://adoptium.net/) / [Oracle](https://www.oracle.com/java/technologies/downloads/) 官方二进制包手动安装。 - 使用系统包管理器(如
- 验证安装:
java -version javac -version echo $JAVA_HOME # 建议设置 JAVA_HOME 环境变量
💡 注意:生产环境通常只需 JRE(运行时),但开发调试或某些框架(如 Spring Boot 内置容器)可能需要完整 JDK。
✅ 二、常用辅助工具(可选但推荐)
| 工具 | 用途 |
|---|---|
curl / wget |
下载依赖、健康检查 |
git |
拉取代码(若从源码部署) |
tar / zip |
解压发布包 |
vim / nano |
编辑配置文件 |
htop / top |
监控进程与资源 |
netstat / ss / lsof |
查看端口占用 |
systemd |
管理服务(推荐将 Java 应用注册为守护进程) |
✅ 三、中间件依赖(视业务而定)
| 组件 | 说明 |
|---|---|
| 数据库驱动 | 如 mysql-connector-java, postgresql 等(若连接远程 DB 则无需本地安装) |
| 消息队列客户端 | Kafka/RabbitMQ 的 SDK(通常以 JAR 形式集成在项目中) |
| Redis 客户端 | 同上,多数通过 Maven/Gradle 引入依赖 |
| Nginx / Apache | 反向X_X + 静态资源服务(非必须,但生产常见) |
| Docker | 若采用容器化部署,则需 Docker + Docker Compose |
⚠️ 大多数现代 Java 应用(尤其是 Spring Boot)已将所需库打包进可执行 JAR,无需在服务器单独安装 Tomcat/Jetty。
✅ 四、安全与运维建议
- 🔒 最小权限原则:创建专用用户运行 Java 应用(如
java-app),避免用 root 启动。 - 📁 目录规划示例:
/opt/app/myapp/ # 应用主目录 /opt/app/myapp/logs/ # 日志 /opt/app/myapp/config/ # 配置文件 /opt/app/myapp/data/ # 本地数据(如有) - 🛡️ 防火墙配置:仅开放必要端口(如 8080 → 外部访问,SSH 22 等)。
- 🔄 自动启动:使用
systemd编写.service文件实现开机自启和崩溃重启。
📌 快速检查清单(部署前确认)
# 1. Java 版本
java -v | grep "17|11|8"
# 2. 内存是否充足(建议 ≥2GB,根据应用调整)
free -h
# 3. 磁盘空间
df -h
# 4. 端口可用性
ss -tlnp | grep :8080
# 5. 网络连通性(测试网络/内网服务)
ping -c 3 db.example.com
curl -I http://your-service:8080/actuator/health
需要我为你提供:
- 一个完整的
systemd服务配置模板? - 针对 Spring Boot JAR 的一键部署脚本示例?
- 不同发行版(Ubuntu/CentOS)的 JDK 安装详细步骤?
欢迎告诉我你的具体场景,我可以进一步定制方案!
云小栈