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

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 等),都可以在此基础上进行进一步探索和实践。

http://www.xdnf.cn/news/5411.html

相关文章:

  • 质数和约数
  • LabVIEW电涡流传感器自动校准系统
  • 【编译原理】总结
  • 由反激电源引起的一点儿分析
  • project从入门到精通(五)
  • Java ClassLoader双亲委派机制
  • 亿级流量系统架构设计与实战(六)
  • Python pip安装conan(在线)
  • Block Styler——字符串控件
  • Cell | 大规模 单细胞图谱 揭示非小细胞肺癌抗PD-1治疗后的免疫微环境异质性
  • 47.电压跌落与瞬时中断干扰的防护改善措施
  • JDBC执行sql过程
  • 技术视角解析:哈达斯无醇气泡葡萄汁的双重风味密码​
  • GLPK(GNU线性规划工具包)介绍
  • Java 中的数据类型误导点!!!
  • windows 环境下 python环境安装与配置
  • Redis-x64-3.0.500
  • React文档-State数据扁平化
  • Vue3响应式原理源码解析(通俗易懂版)
  • Qt中在子线程中刷新UI的方法
  • llama.cpp无法使用gpu的问题
  • 【TypeScript】索引签名类型(Index Signatures)
  • 字符串---StringBuilder的使用
  • Kubernetes生产实战(一):多容器Pod协同实践
  • 超详细Kokoro-82M本地部署教程
  • JavaScript基础-switch分支流程控制
  • 3498. 字符串的反转度
  • MATLAB安装常见问题及解决方案详解(含代码示例)
  • 抖音app 抓包分析
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(18):条件形 文法