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

 更新时间:2025年07月04日 09:24:22   作者:·薯条大王  
这篇文章主要给大家介绍了关于Linux系统下Java部署环境搭建与项目部署的超详细步骤,通过示例讲解了JDK和MySQL安装、项目打包上传、后台启动、防火墙配置及进程管理,提供XShell和lrzsz等工具使用方法,需要的朋友可以参考下

1. 软件环境准备

1.1 更新软件包库

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

sudo apt update

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

1.2 安装 OpenJDK

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

  • 查找 JDK 包版本 执行:

    apt list | grep "jdk"
    

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

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

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

    java -version
    
    openjdk version "17.0.12" ...
    

    表示安装成功。

1.3 安装 MySQL 数据库

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

  • 查找 MySQL 包 执行:

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

    sudo apt install mysql-server
    

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

  • 检查 MySQL 服务状态 执行:

    sudo systemctl status mysql
    

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

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

    sudo mysql_secure_installation
    

    根据提示操作:

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

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

2. 部署 Web 项目到 Linux

2.1 数据准备和配置

  • 数据库建表

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

    • 登录 MySQL:

      sudo mysql -u root -p
      

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

  • 环境配置文件修改

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

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

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

      spring:
        profiles:
          active: prod
      

2.2 Maven 打包项目

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

    mvn clean package
    

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

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

2.3 上传 Jar 包至云服务器

  • 使用 XShell 拖拽上传

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

    • 安装 lrzsz:

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

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

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

2.4 启动应用程序

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

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

    bash

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

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

    • &:使命令在后台执行

  • 验证程序运行情况

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

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

      tail -f app.log
      

2.5 配置防火墙与端口开放

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

  • 在云服务器管理控制台

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

    • 添加相应规则:

      • 协议:TCP

      • 端口号:8080

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

2.6 访问与验证项目

  • 在浏览器中访问 输入 URL:

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

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

  • 功能验证

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

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

2.7 进程管理与问题排查

  • 查看当前 Java 进程

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

    kill -9 12345
    
  • 常见问题检查

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

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

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

总结

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

  • 环境搭建

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

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

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

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

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

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

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

到此这篇关于Linux系统下Java部署环境搭建与项目部署的文章就介绍到这了,更多相关Linux Java部署环境搭建与项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中forward转发与redirect重定向的区别

    Java中forward转发与redirect重定向的区别

    转发和重定向都是常用的页面跳转方式,但在实现上有一些区别,本文主要介绍了Java中forward转发与redirect重定向的区别,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Java实现快速排序算法可视化的示例代码

    Java实现快速排序算法可视化的示例代码

    快速排序算法通过多次比较和交换来实现排序,是对冒泡排序算法的一种改进。本文将用Java语言实现快速排序算法并进行可视化,感兴趣的可以了解一下
    2022-08-08
  • 导入maven项目各个注解均报错的解决方案

    导入maven项目各个注解均报错的解决方案

    这篇文章主要介绍了导入maven项目各个注解均报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • protobuf与json转换小结

    protobuf与json转换小结

    protobuf对象不能直接使用jsonlib去转,因为protobuf生成的对象的get方法返回的类型有byte[],而只有String类型可以作为json的key,protobuf提供方法进行转换
    2017-07-07
  • JavaScript实现贪吃蛇游戏

    JavaScript实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了JavaScript实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Mybatis 一级缓存和二级缓存原理区别

    Mybatis 一级缓存和二级缓存原理区别

    这篇文章主要介绍了Mybatis 一级缓存和二级缓存原理区别 ,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Java数据结构之Map与Set专篇讲解

    Java数据结构之Map与Set专篇讲解

    这篇文章通过实例面试题目来讲解Java中Map和Set之间的关系,具有很好的参考价值,Map与Set在面试中经常会遇到。一起跟随小编过来看看吧
    2022-01-01
  • vue+springboot上传文件、图片、视频及回显到前端详解

    vue+springboot上传文件、图片、视频及回显到前端详解

    一般来说vue可以使用axios或者fetch等ajax库发送文件请求,而springboot则可以使用Spring MVC的方式来处理上传文件请求,下面这篇文章主要给大家介绍了关于vue+springboot上传文件、图片、视频及回显到前端的相关资料,需要的朋友可以参考下
    2023-04-04
  • java实现Fibonacci算法实例

    java实现Fibonacci算法实例

    这篇文章主要介绍了java实现Fibonacci算法的方法,以实例形式较为详细的分析了java实现Fibonacci算法的原理与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • Java并发编程(CyclicBarrier)实例详解

    Java并发编程(CyclicBarrier)实例详解

    这篇文章主要介绍了Java并发编程(CyclicBarrier)实例详解的相关资料,JAVA编写并发程序的时候,我们需要仔细去思考一下并发流程的控制,如何让各个线程之间协作完成某项工作。
    2017-07-07

最新评论