加油
努力

Linux服务器部署Java程序需要安装哪些基础环境和依赖?

在 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 安装详细步骤?

欢迎告诉我你的具体场景,我可以进一步定制方案!

云服务器