当前位置: 首页 > news >正文

Linux 下 Java 部署环境搭建与项目部署详细步骤

目录

1. 软件环境准备

1.1 更新软件包库

1.2 安装 OpenJDK

1.3 安装 MySQL 数据库

2. 部署 Web 项目到 Linux

2.1 数据准备和配置

2.2 Maven 打包项目

2.3 上传 Jar 包至云服务器

2.4 启动应用程序

2.5 配置防火墙与端口开放

2.6 访问与验证项目

2.7 进程管理与问题排查

总结


1. 软件环境准备

1.1 更新软件包库

在 Ubuntu 上,每次安装软件前建议更新系统的软件包数据库:

sudo apt update

此命令会从预设的软件源同步最新软件包的信息。

1.2 安装 OpenJDK

Java 环境是运行 Java Web 项目的必备条件。

  1. 查找 JDK 包版本 执行:

    apt list | grep "jdk"
    

    查看有哪些版本的 JDK 可供安装。

  2. 安装 OpenJDK 17 建议使用较新版本的 OpenJDK,例如:

    sudo apt install openjdk-17-jdk
    
  3. 验证安装 检查 Java 版本:

    java -version
    

    openjdk version "17.0.12" ...
    

    表示安装成功。

1.3 安装 MySQL 数据库

数据库在 Web 项目中通常用于存储数据。

  1. 查找 MySQL 包 执行:

    apt list | grep "mysql-server"
    
  2. 安装 MySQL 执行:

    sudo apt install mysql-server
    

    安装过程中可能会提示确认下载和安装,输入 Y 继续。

  3. 检查 MySQL 服务状态 执行:

    sudo systemctl status mysql
    

    状态应显示“active (running)”。

  4. 进行 MySQL 安全设置 为了增强安全性,请运行:

    sudo mysql_secure_installation
    

    根据提示操作:

    • 是否设置验证组件:建议输入 Y 并选择密码强度(例如 2 - STRONG);

    • 删除匿名用户、禁止 root 远程登录和移除 test 数据库等,全部按照提示选择 Y 确认即可。

2. 部署 Web 项目到 Linux

2.1 数据准备和配置

  1. 数据库建表

    • 根据提供或自定义的建表 SQL 脚本,在 MySQL 中创建数据库及表结构。

    • 登录 MySQL:

      sudo mysql -u root -p
      

      然后执行 SQL 脚本创建数据库。

  2. 环境配置文件修改

    • 在 Spring Boot 项目中,根据不同环境编写配置文件:例如 application-dev.ymlapplication-prod.yml

    • 在测试环境里使用开发配置,在生产环境中改为正式数据库连接。

    • 主配置文件 application.yml 中指定当前使用的 profile:

      spring:profiles:active: prod
      

2.2 Maven 打包项目

  1. 在本地环境中 进入项目根目录,执行:

    mvn clean package
    

    如果测试用例因环境依赖而失败,可以使用:

    mvn clean package -DskipTests
    
  2. 打包结果 Maven 执行完成后,会在 target/ 目录下生成一个可执行的 jar 包(如 blog-spring-0.0.1-SNAPSHOT.jar)。

2.3 上传 Jar 包至云服务器

  1. 使用 XShell 拖拽上传

    打开 XShell 后,直接将 jar 包从文件管理器拖动至 XShell 窗口,即可完成文件上传。
  2. 使用 lrzsz 上传工具(备用方案)

    • 安装 lrzsz:

      sudo apt-get install lrzsz
      
    • 在 XShell 中执行上传命令:

      • 上传命令(在终端中输入):

        sz blog-spring-0.0.1-SNAPSHOT.jar
        
      • 弹出对话框选择要上传的文件,上传完成后,可在当前目录下看到 jar 文件。

2.4 启动应用程序

  1. 在云服务器中进入 jar 文件所在目录 使用 cd 命令定位到上传文件的目录(例如:cd ~/java)。

  2. 后台启动应用 使用 nohup 命令使程序在后台运行,并将输出重定向到日志文件中,这样即使退出终端程序也不会停止运行:

    bash

    nohup java -jar blog-spring-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
    
    • nohup:使命令在退出终端后继续运行

    • > app.log 2>&1:将标准输出和错误输出保存到 app.log 文件

    • &:使命令在后台执行

  3. 验证程序运行情况

    • 使用命令查看运行的进程:

      ps -ef | grep java
      
    • 查看日志文件,确认启动完成:

      tail -f app.log
      

2.5 配置防火墙与端口开放

  1. 确认应用端口 假设应用监听 8080 端口,则需要确保云服务器安全组或防火墙允许外部访问该端口。

  2. 在云服务器管理控制台

    • 登录云服务商(如腾讯云、阿里云)管理后台,进入防火墙或安全组设置。

    • 添加相应规则:

      • 协议:TCP

      • 端口号:8080

      • 来源:建议设置为 0.0.0.0/0(所有 IP)或根据实际需要限制 IP 范围

2.6 访问与验证项目

  1. 在浏览器中访问 输入 URL:

    http://[外网IP]:8080/blog_login.html
    

    (将 [外网IP] 替换为云服务器实际 IP,8080 替换为实际应用监听端口)

  2. 功能验证

    • 检查登录、注册、博客列表展示、新增博客等功能是否正常

    • 如遇错误,回到云服务器查看日志文件进行问题排查

2.7 进程管理与问题排查

  1. 查看当前 Java 进程

    ps -ef | grep java
    
  2. 停止旧进程 若需重启服务,先使用 kill 命令结束当前进程(假设 PID 为 12345):

    kill -9 12345
    
  3. 常见问题检查

    • 数据库连接密码错误、MySQL 大小写问题

    • JDK 版本不匹配,检查 java -version

    • 防火墙端口未开放,重新检查云服务安全配置

总结

以上内容详细介绍了从 Linux 基本使用到 Java Web 项目部署的全过程。简单回顾主要步骤:

  1. 环境搭建

    选择并购买云服务器,获取外网 IP、管理员账号和密码使用 XShell 等工具通过 SSH 连接到 Linux 服务器
  2. Linux 基本命令学习

    掌握文件管理、目录切换、文本编辑等基础操作
  3. 安装运行环境

    使用 apt 更新软件包,安装 OpenJDK 和 MySQL并且完成 MySQL 安全设置,确保数据库安全
  4. 项目打包与上传

    在本地使用 Maven 打包生成 jar 包,通过 XShell 或 lrzsz 上传文件
  5. 后台运行及验证

    利用 nohup 后台启动 jar,开放必要端口,测试访问效果
  6. 排查与进程管理

    检查进程、日志,使用 kill 命令重启服务

这份指南可以作为实际操作时的参考文档,帮助你理清从环境搭建、软件安装到项目上线的每一步细节。对部署流程有疑问或需要进一步了解自动化部署工具(如 Jenkins、Docker 等),都可以在此基础上进行进一步探索和实践。

相关文章:

  • PyTorch 线性回归模型构建与神经网络基础要点解析
  • 【金仓数据库征文】学校AI数字人:从Sql Server到KingbaseES的数据库转型之路
  • 十六、统一建模语言 UML
  • cdn 是什么?
  • AIGC时代大模型幻觉问题深度治理:技术体系、工程实践与未来演进
  • LSP里氏替换原则
  • 全息美AISEO引领未来智能营销新趋势
  • 关键点检测--使用YOLOv8对Leeds Sports Pose(LSP)关键点检测
  • Kubernetes生产实战(十六):集群安全加固全攻略
  • 协议路由与路由协议
  • 数据库索引详解:原理 · 类型 · 使用 · 优化
  • 流式数据(Streaming Data)和非流式数据(Batch Data)区别、使用场景、优化-来自前端的浅解
  • Python常见面试题
  • AST(抽象语法树)与 HBO(基于历史的优化)详解
  • 单片机-STM32部分:11、ADC
  • 【C++】 —— 笔试刷题day_27
  • 电影感户外哑光人像自拍摄影Lr调色预设,手机滤镜PS+Lightroom预设下载!
  • AI编程: 使用Trae1小时做成的音视频工具,提取音频并识别文本
  • 扩容 QCOW2 磁盘镜像文件
  • PCB设计实践(十三)PCB设计中差分线间距与线宽设置的深度解析
  • 新村回响:一周城市生活
  • 马上评|比余华与史铁生的友情更动人的是什么
  • 抗战回望21︱《“良民”日记》:一个“良民”在沦陷区的见闻与感受
  • 保利发展前4个月销售额约876亿元,单月斥资128亿元获4个项目
  • 前瞻|美联储明晨“按兵不动”几无悬念:关税战阴霾下,会否释放降息信号
  • 郑州一街道被指摊贩混乱经营,12345热线:已整治并加强巡查