教你1秒将本地SpringBoot项目jar包部署到Linux环境(超详细!)

好,这里是“教你1秒将本地SpringBoot项目jar包部署到Linux环境(超详细!)”的完整攻略。

1. 前置条件

在开始操作前,需要准备好以下环境:

  • 一台Linux服务器,能够连接到互联网,并且已经安装好了Java运行环境(JRE 或 JDK)。
  • 一份SpringBoot应用程序代码,在本地环境已经编译为可运行的jar包。

本教程中的示例代码可以在我的Github仓库中获取:https://github.com/johnsmith-zhang/springboot-demo

2. 将应用程序jar包上传到服务器

将本地编译好的应用程序jar包上传到服务器的任意一个路径下,例如 /home/user/。可以使用 SCP 命令或其他远程传输工具来完成上传。

示例命令:

scp /path/to/your/app.jar user@your.server:/home/user/

这里的 user 是目标服务器的用户名,your.server 是服务器的地址,/path/to/your/app.jar 是本地的应用程序jar包的路径。在输入命令时需要确保本地电脑已经可以连接到服务器,并且拥有对应的权限。

3. 在服务器上启动应用程序

基于上传好的应用程序jar包,在服务器上启动应用程序的操作相对简单。只需要在上传jar包的目录下,运行如下命令:

java -jar app.jar

这里的 app.jar 是您上传到服务器上的应用程序jar包的名称。在执行命令之前,需要确保你已经切换到对应的上传目录下。

如果您的应用程序是用 Gradle 或 Maven 构建的,那么您可以使用相应的打包命令来在本地生成可运行的jar包。

Gradle 打包命令:

./gradlew bootJar

Maven 打包命令:

mvn package

执行完成后,可以在项目的 build/libstarget 目录下找到生成好的jar包。

4. 绑定应用程序端口

在默认情况下,SpringBoot应用程序使用的是8080端口。如果你想要使用其他的端口,需要在运行jar包时指定对应的端口,例如:

java -jar app.jar --server.port=8888

这里的 8888 是指绑定的端口号。这个值可以根据您的实际需求来进行修改。

5. 用systemd配置服务

在Linux服务器中,可以使用systemd来配置系统服务。systemd是一个初始化进程,它是 Linux 初始化的第一个进程。

为了让 SpringBoot 应用程序在服务器启动时自动运行,我们可以使用 systemd 来配置应用程序服务。以下是具体的步骤:

  1. /etc/systemd/system/ 目录下创建应用程序服务。
sudo vim /etc/systemd/system/app.service
  1. 在服务文件中添加以下内容:
[Unit]
Description=Name of your application

[Service]
User=your-user
WorkingDirectory=/home/your-user
ExecStart=/usr/bin/java -jar /home/your-user/app.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

这里的 Name of your application 是您的应用程序的名称。your-user 是您在服务器上的用户名。在 ExecStart 行中,需要将 /home/your-user/app.jar 替换为您上传到服务器的应用程序jar包的实际路径。

  1. 启动和设置应用程序服务。
sudo systemctl daemon-reload
sudo systemctl enable app.service
sudo systemctl start app.service

这些命令将会重新读取你的 systemd 配置并启动应用服务。如果您想停止您的应用程序,可以运行以下命令:

sudo systemctl stop app.service

6. 示例

示例一

假设你的应用程序名为 myspringbootapp,已经上传至服务器的 /home/user 目录下,你的用户名是 user

  1. 上传应用程序jar包到服务器上。
scp /path/to/myspringbootapp.jar user@your.server.com:/home/user/
  1. 在服务器上运行应用程序。
cd /home/user
java -jar myspringbootapp.jar

如果您希望绑定其他的端口号,可以使用如下命令:

java -jar myspringbootapp.jar --server.port=8081
  1. 配置服务。
sudo vim /etc/systemd/system/myspringbootapp.service

在这里,你可以根据上面的例子来编辑服务文件。假设你的服务文件的路径为 /etc/systemd/system/myspringbootapp.service

[Unit]
Description=MySpringBootApp

[Service]
User=user
WorkingDirectory=/home/user
ExecStart=/usr/bin/java -jar /home/user/myspringbootapp.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target
  1. 启动和设置应用程序服务。
sudo systemctl daemon-reload
sudo systemctl enable myspringbootapp.service
sudo systemctl start myspringbootapp.service

示例二

假设你的应用程序名为 myfirstspringbootapp,已经上传至服务器的 /home/user 目录下,你的用户名是 user

  1. 上传应用程序jar包到服务器上。
scp /path/to/myfirstspringbootapp.jar user@your.server.com:/home/user/
  1. 在服务器上运行应用程序。
cd /home/user
java -jar myfirstspringbootapp.jar

如果您希望绑定其他的端口号,可以使用如下命令:

java -jar myfirstspringbootapp.jar --server.port=8081
  1. 配置服务。
sudo vim /etc/systemd/system/myfirstspringbootapp.service

在这里,你可以根据上面的例子来编辑服务文件。假设你的服务文件的路径为 /etc/systemd/system/myfirstspringbootapp.service

[Unit]
Description=MyFirstSpringBootApp

[Service]
User=user
WorkingDirectory=/home/user
ExecStart=/usr/bin/java -jar /home/user/myfirstspringbootapp.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target
  1. 启动和设置应用程序服务。
sudo systemctl daemon-reload
sudo systemctl enable myfirstspringbootapp.service
sudo systemctl start myfirstspringbootapp.service

7. 总结

本教程讲解了如何将本地的 SpringBoot 应用程序部署到 Linux 环境中。具体而言,包括:

  1. 将应用程序jar包上传到服务器.
  2. 在服务器上启动应用程序.
  3. 绑定应用程序端口.
  4. 使用systemd配置服务.
  5. 基于两个示例讲解了上述过程,使大家可以更好理解。

如果你遇到了任何的问题或者疑问,可以在评论区留言提出。

阅读剩余 76%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:教你1秒将本地SpringBoot项目jar包部署到Linux环境(超详细!) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java日常练习题,每天进步一点点(5)

    下面是对于Java日常练习题系列的完整攻略。 标题 本文内容为Java日常练习题第5部分的攻略,旨在帮助Java初学者通过每天练习,逐步提高自己的编程能力。 练习题 本部分共包含5个Java练习题,涉及基本数据类型、数组、字符串等内容。每个练习题建议练习时间不超过30分钟。 提交作业 完成每个练习题后,建议将代码提交到代码托管平台(如GitHub、GitLa…

    Java 2023年5月19日
    00
  • 最适合人工智能开发的5种编程语言 附人工智能入门书籍

    最适合人工智能开发的5种编程语言,包括Python、Java、R语言、LISP和Prolog。这些编程语言不仅易学易用,而且拥有丰富的库和工具,能够方便地完成数据分析、机器学习、深度学习等多种人工智能任务。 Python Python是目前最常用的人工智能编程语言之一,甚至有人将其描述为“完美的人工智能编程语言”。Python易学易用,有丰富的库和工具,可实…

    Java 2023年5月19日
    00
  • Spring Boot 直接用jar运行项目的方法

    Spring Boot应用程序可以打包成可执行的jar文件,方便部署和运行。本文将详细讲解如何使用jar文件运行Spring Boot应用程序,包括如何打包jar文件、如何运行jar文件等。 打包jar文件 在使用jar文件运行Spring Boot应用程序之前,需要先打包jar文件。可以使用Maven或Gradle等构建工具打包jar文件。以下是一个使用M…

    Java 2023年5月15日
    00
  • Java如何手动创建线程池

    让我详细讲解一下 Java 如何手动创建线程池。 什么是线程池 线程池是一种用于管理线程的方法,它包含了多个线程,可以解决线程频繁创建和删除的问题。在 Java 中,线程池的实现是通过 Executor 框架来完成的。 为什么要手动创建线程池 Java 中提供了许多内置的线程池,如:FixedThreadPool、CachedThreadPool、Sched…

    Java 2023年5月26日
    00
  • java中List对象排序通用方法

    请允许我详细讲解一下“Java中List对象排序通用方法”的完整攻略。 一、List对象排序的基本思路 在Java中,List是一种常见的集合类型,可以用来存储一组数据。在实际开发过程中,我们会遇到需要对List中的数据进行排序的需求。通用的 List 对象排序方法需要以下步骤: 对于自定义对象,需要实现 Comparable 接口或者传入一个 Compar…

    Java 2023年5月26日
    00
  • java多次嵌套循环查询数据库导致代码中数据处理慢的解决

    针对“Java多次嵌套循环查询数据库导致代码中数据处理慢的解决”这个问题,我们可以采取以下五个步骤来解决: 将多次嵌套循环的查询转换为单次查询,减少数据库操作次数 将单次查询的结果集缓存,避免重复查询 将缓存的结果集转换为可供快速查询的数据结构,例如哈希表 对查询语句和查询条件进行优化 采用多线程并发处理查询任务 下面针对这五个步骤依次进行讲解: 1. 将多…

    Java 2023年5月20日
    00
  • Java SpringBoot开发小技巧详解

    JavaSpringBoot开发小技巧详解 简介 Java Spring Boot是一种轻量级开发框架,可以简化Java Web应用程序的开发过程。在Spring Boot中,许多常见的配置都可以自动配置,从而使得开发者可以专注于业务逻辑而不必浪费太多时间在初始化过程上。本文将介绍几个在Java Spring Boot开发中常用的小技巧,以及它们的使用方法。…

    Java 2023年5月15日
    00
  • 手把手教你如何搭建SpringBoot+Vue前后端分离

    手把手教你如何搭建SpringBoot+Vue前后端分离 1. 准备工作 在开始搭建前,需要先安装并配置好以下软件: Java8及以上版本 Node.js Vue CLI 4 Git 2. 搭建后端环境 2.1. 创建SpringBoot项目 使用IntelliJ IDEA 或者其它集成开发环境,选择 Spring Initializr 创建一个新的 Spr…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部