在新服务器上部署并运行一个 Java 项目,通常需要安装和配置以下几类软件和环境。具体需求会根据项目的实际情况(如是否使用 Spring Boot、Maven/Gradle 构建工具、数据库等)有所不同,但大致如下:
🧰 一、基础环境
1. 操作系统
- 常见选择:CentOS、Ubuntu、Debian、AlmaLinux 等 Linux 发行版(推荐)
- Windows Server(不常用,除非必须)
☕ 二、Java 运行环境
1. JDK(Java Development Kit)
- 必须安装 JDK,不只是 JRE
- 版本要与你的项目兼容(如 Java 8、Java 11、Java 17 等)
- 推荐发行版:
- OpenJDK(免费开源)
- Oracle JDK(商业授权)
- Adoptium / AdoptOpenJDK(社区维护,推荐)
安装方式示例(Ubuntu):
sudo apt update
sudo apt install openjdk-17-jdk
验证安装:
java -version
javac -version
🛠️ 三、构建工具(可选,取决于项目)
1. Maven
用于依赖管理和项目构建。
sudo apt install maven
mvn -v
2. Gradle
适用于 Gradle 项目。
sudo apt install gradle
gradle -v
📦 四、项目打包和部署方式
1. 直接部署 Jar 包
- 如果是 Spring Boot 项目,可以直接运行
.jar文件java -jar your-project.jar
2. 使用脚本后台运行
建议用 nohup 或 systemd 启动服务:
nohup java -jar your-project.jar > app.log 2>&1 &
或者写一个 systemd service 脚本,便于管理。
🌐 五、Web 服务器(可选)
如果项目不是内嵌 Tomcat 的 Spring Boot 项目,而是传统的 WAR 包部署,则需要:
1. Tomcat
- 下载解压 Tomcat(推荐 9.x 或更高版本)
- 配置
server.xml和webapps - 将 WAR 包放入
webapps目录启动 Tomcat 即可
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.85/bin/apache-tomcat-9.0.85.tar.gz
tar -zxvf apache-tomcat-9.0.85.tar.gz
./bin/startup.sh
💾 六、数据库(视项目而定)
常见的数据库包括:
| 数据库 | 安装命令 |
|---|---|
| MySQL | sudo apt install mysql-server |
| PostgreSQL | sudo apt install postgresql |
| Oracle | 手动安装(需下载官方 RPM/DEB) |
| SQLite | 内嵌型,无需额外安装 |
确保项目中配置了正确的 JDBC 连接信息。
🔁 七、自动部署相关(可选)
如果你希望自动化部署 Java 项目,可以考虑:
1. Git
拉取代码用:
git clone https://your-repo.git
2. CI/CD 工具
- Jenkins
- GitHub Actions
- GitLab CI
- Gitee Runners 等
3. Shell 脚本或 Ansible 自动化部署
🔒 八、防火墙与端口开放
确保服务器的防火墙允许访问所需端口(如 80、443、8080 等):
sudo ufw allow 8080/tcp
sudo ufw enable
sudo ufw status
📊 九、监控与日志(可选)
- 使用
top,htop,jstat,jmap等监控资源 - 日志分析:ELK Stack(Elasticsearch + Logstash + Kibana)
- APM:SkyWalking、Pinpoint、New Relic
🧪 十、其他常见组件(视项目需求)
| 组件 | 用途 |
|---|---|
| Redis | 缓存 |
| Nginx | 反向、负载均衡 |
| RabbitMQ/Kafka | 消息队列 |
| Elasticsearch | 搜索引擎 |
| Zookeeper | 分布式协调 |
| Docker | 容器化部署(可选) |
✅ 总结:最小部署清单(Spring Boot 示例)
| 名称 | 是否必须 |
|---|---|
| JDK | ✅ 是 |
| Maven/Gradle | ❌ 否(本地打包即可) |
| Tomcat | ❌ 否(如果是 jar 包) |
| 数据库 | ✅ 视项目 |
| Git | ❌ 否(可用 scp/sftp) |
| Nginx | ❌ 否(前端) |
如果你能提供更具体的项目类型(比如是否是 Spring Boot?有没有数据库?前端?),我可以给出更详细的部署步骤。欢迎继续提问!
CLOUD技术博