Java Web程序在Linux系统上的部署完整流程

 更新时间:2025年12月13日 09:45:19   作者:BUG召唤师  
Java Web项目是基于Java平台构建的、运行在Web服务器上的应用程序,这篇文章主要介绍了Java Web程序在Linux系统上的部署完整流程,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

本文介绍了在Linux系统中部署Web项目的完整流程。首先讲解了使用apt命令管理软件包、安装JDK和MySQL的基本操作;然后详细说明了如何通过Maven配置多环境参数、打包项目并上传到服务器;最后介绍了后台运行程序、处理端口冲突的方法。整个部署过程涵盖了从基础环境搭建到项目上线的关键步骤,为开发者提供了实用的Linux部署指导。

一、搭建部署环境

使用 apt 在 Linux 环境中安装,更新,删除和管理软件包;

1. apt 的常用命令

# 列出所有软件包
apt list

# 更新软件包数据库
apt-get update

# 安装软件包
apt install package_name

# 移除软件包
apt remove package_name
apt purge package_name

2. 安装 JDK

安装软件前,先更新包管理器中的软件资源:

apt-get updtae

查找及安装 JDK:

# 查找 jdk
apt list | grep "jdk"

# 安装 jdk
apt install openjdk-17-jdk

# 查看 jdk 版本
java -version

3. 安装 mysql

# 查找安装包
apt list | grep "mysql-server"

# 安装 mysql
apt install mysql-server

# 查看 mysql 状态
systemctl status mysql

二、部署 Web 项目到 Linux

1. 环境配置

为了避免在开发环境中和生产环境中切换时,频繁的修改程序,因此配置文件通常写两个,程序打包时,选择使用哪个配置文件即可,避免修改程序;

开发环境使用 dev 配置文件,线上环境使用 prod 配置文件;两个文件的格式是相同的,内容需要根据数据库的配置填写不同的内容;

以 dev 为例:

spring:
  application:
    name: spring-blog

  # 数据库配置
  datasource:
    url: jdbc:mysql://127.0.0.1:3308/java_blog_spring?characterEncoding=utf8&useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis:
  #  配置 mybatis xml 的文件路径,在 resources/mapper 创建所有表的 xml 文件
  mapper-locations: classpath:mapper/**Mapper.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 配置打印 MyBatis日志
    map-underscore-to-camel-case: true #配置驼峰自动转换

logging:
  file:
    name: spring-blog.log

在 application.yml 中指定使用哪个配置文件;

spring:
  profiles:
    active: dev

为了防止 application.yml 中的总是需要修改,可以从 Maven 环境中读取配置变量:

    <profiles>
		<profile>
			<id>dev</id>
			<properties>
				<profile.name>dev</profile.name>
			</properties>
		</profile>
		<profile>
			<id>prod</id>
			<properties>
				<profile.name>prod</profile.name>
			</properties>
		</profile>
	</profiles>

修改 application.yml:

spring:
  profiles:
    active: @profile.name@

2. 构建项目并打包

使用 Maven 进行打包:

1. 需要选择使用哪个配置文件,勾选好之后,要刷新,重新加载 Maven 配置;

2. 如果是线上环境,数据库配置和本地环境不同,打包时测试相关的操作会失败,因此可以跳过测试;

3. 双击 package 进行打包;

打包完,在指定目录中找到打包好的软件包,通常有几十兆,如果打包过小,只有几兆,可能是 Maven 中打包插件有问题,没有打包引入的第三方的代码;

3. 上传 jar 包到服务器

将打好的 jar 包托到服务器的指定目录:

拖动需要使用 rzsz 命令,如果拖动失败,先安装 rzsz:

apt-get install lrzsz

成功后运行程序:

nohup java -jar blog-spring-0.0.1-SNAPSHOT,jar &

使用 nohup 指令,可以使程序在 shell 窗口关闭后也能运行(后台运行程序);

程序运行后,注意一定要开放应用程序的端口号;

一切就绪后,使用浏览器进行访问,检查能否访问成功;

4. 解决端口号冲突

如果端口号冲突,先查找到使用这个端口进程;

netstat -anp | grep "8080"

找到使用这个端口的进程,查看这个进程是什么:

ps aux | grep "进程号"

如果这个进程可以不运行,可以杀掉进程:

kill 进程号

总结

到此这篇关于Java Web程序在Linux系统上的部署完整流程的文章就介绍到这了,更多相关Java Web程序部署Linux系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 学习java多线程

    学习java多线程

    本文运用了大量的代码讲解了java多线程,它可以提高程序并行执行的速度,更快的响应程序。感兴趣的小伙伴一起来看看吧
    2021-08-08
  • 使用WebMvcConfigurer配置SpringMVC过程

    使用WebMvcConfigurer配置SpringMVC过程

    WebMvcConfigurer配置类用于Java代码配置SpringMvc,实现该接口或继承WebMvcConfigurationSupport类,常用方法:addInterceptors(拦截器)、addViewControllers(视图控制器)等
    2024-12-12
  • Java中实现接口与继承的区别及说明

    Java中实现接口与继承的区别及说明

    这篇文章主要介绍了Java中实现接口与继承的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 揭秘Spring核心注解@Configuration与@Component的本质区别

    揭秘Spring核心注解@Configuration与@Component的本质区别

    在Spring框架中,@Configuration和@Component都是常用的注解,但它们有着本质的区别,本文将深入剖析这两者的核心区别,并通过代码示例展示它们的实际行为差异
    2025-07-07
  • 解析mybatis-plus中的resultMap简单使用

    解析mybatis-plus中的resultMap简单使用

    mybatis-plus也只是听过,可是终究没有使用过。于是自己花几天晚上的时间研究mybatis-plus的使用。这篇文章主要介绍了mybatis-plus的resultMap简单使用,需要的朋友可以参考下
    2021-11-11
  • Java中Spring的创建和使用详解

    Java中Spring的创建和使用详解

    这篇文章主要介绍了Java中Spring的创建和使用详解,Spring 是⼀个包含了众多⼯具⽅法的 IoC 容器,既然是容器那么 它就具备两个最基本的功能,将对象存储到容器中,从容器中将对象取出来,需要的朋友可以参考下
    2023-08-08
  • java如何获取文件或目录的路径

    java如何获取文件或目录的路径

    介绍了几种获取项目路径的方法,包括System.getProperty("user.dir")、类加载器getResource()、file.getPath()和file.getCanonicalPath(),并比较了它们的优缺点,推荐使用System.getProperty("user.dir")更为方便
    2025-11-11
  • Netty源码解析NioEventLoop创建的构造方法

    Netty源码解析NioEventLoop创建的构造方法

    这篇文章主要介绍了Netty源码解析NioEventLoopGroup之NioEventLoop创建的构造方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • Quarkus改造Pmml模型项目异常记录及解决处理

    Quarkus改造Pmml模型项目异常记录及解决处理

    这篇文章主要为大家介绍了Quarkus改造Pmml模型项目是遇到的异常记录以及解决方法,有需要的同学可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-02-02
  • java中struts2实现简单的文件上传与下载

    java中struts2实现简单的文件上传与下载

    这篇文章主要为大家详细介绍了java中struts2实现简单的文件上传与下载的相关资料,感兴趣的小伙伴们可以参考一下
    2016-05-05

最新评论