部署 Java 项目到 Linux 服务器,通常需要安装以下基础环境(按优先级排序):
✅ 1. Java 运行环境(JRE/JDK)
- 推荐版本:根据项目需求选择(如 Spring Boot 3.x 通常要求 JDK 17+;老项目可能用 JDK 8/11)。
-
安装方式示例(以 Ubuntu/Debian 为例):
# 安装 OpenJDK 17 sudo apt update sudo apt install openjdk-17-jdk # 验证安装 java -version javac -version # 若需编译则必须安装 JDK;纯运行时可只装 JRE - 注意:
- 生产环境建议优先使用 OpenJDK(免费、稳定),避免 Oracle JDK 授权风险。
- 确保
JAVA_HOME环境变量正确配置(多数应用依赖它)。
✅ 2. 进程守护与启动管理工具(可选但强烈推荐)
-
Systemd(现代 Linux 发行版默认自带):用于将 Java 应用注册为系统服务,实现开机自启、日志管理、重启监控等。
- 示例
/etc/systemd/system/myapp.service:[Unit] Description=My Spring Boot App After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -jar myapp.jar –server.port=8080
Restart=always
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"[Install]
WantedBy=multi-user.target```bash sudo systemctl daemon-reload sudo systemctl enable myapp sudo systemctl start myapp - 示例
-
替代方案(轻量场景):
nohup java -jar app.jar &(简单测试用,无自动重启/日志轮转)supervisord(适合多进程管理)
✅ 3. 文件传输与打包工具
tar/gzip:打包部署包(.jar,.war或目录)。scp/rsync/sftp:上传项目文件到服务器。wget/curl:从内网仓库或 CI/CD 拉取制品。
✅ 4. 日志查看与诊断工具
tail -f/journalctl:实时查看日志。top/htop:监控 CPU/内存。jstat/jmap/jstack(JDK 自带):分析 JVM 性能、GC、线程阻塞。ps aux | grep java:确认进程状态。
✅ 5. 网络与防火墙配置
-
开放应用端口(如 8080):
# Ubuntu (ufw) sudo ufw allow 8080/tcp # CentOS/RHEL (firewalld) sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload - 检查端口监听:
netstat -tlnp | grep :8080或ss -tlnp
⚠️ 额外建议(生产环境必备)
| 类别 | 说明 |
|---|---|
| 反向X_X | Nginx/Apache 做负载均衡、SSL 终止、静态资源缓存 |
| 数据库驱动 | 若项目直连 DB,需提前安装对应 JDBC 驱动(或放入 lib/) |
| 时区同步 | timedatectl set-timezone Asia/Shanghai + 设置 JVM -Duser.timezone=Asia/Shanghai |
| 安全加固 | 限制 Java 用户权限、关闭 SSH root 登录、启用 fail2ban |
需要我根据你的具体场景(如:Spring Boot 微服务?单体 WAR 包?容器化 vs 原生?)提供定制化部署脚本或 systemd 模板吗?
CLOUD技术博