教你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. 基于两个示例讲解了上述过程,使大家可以更好理解。

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

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

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

相关文章

  • Spring Boot中@Import三种使用方式实例详解

    关于“Spring Boot中@Import三种使用方式实例详解”,我将分为以下三个部分进行阐述。 1. @Import的三种使用方式 @Import在Spring Boot中有三种不同的使用方式,分别是: 直接导入类:使用@Import导入所需的Java类。 导入Java配置文件:通过@Import导入Java配置文件,使其的Bean能够在应用程序中可用。…

    Java 2023年5月19日
    00
  • JSP中response.setContentType和response.setCharacterEncoding区别分析

    当我们在JSP中使用response对象时,有两个方法可以设置响应报文的内容类型和字符编码,这就是response.setContentType和response.setCharacterEncoding两者的作用。 response.setContentType response.setContentType方法用于设置响应报文的MIME类型。MIME类型…

    Java 2023年6月15日
    00
  • JDBC连接MySQL5.7的方法

    JDBC是Java语言操作数据库的标准接口,而MySQL是目前最受欢迎的开源数据库之一。在本文中,我们将探讨如何使用JDBC连接MySQL 5.7数据库。 步骤1:下载MySQL JDBC驱动程序 首先,我们需要下载MySQL官方提供的JDBC驱动程序,从而能够在Java应用程序中访问MySQL 5.7数据库。你可以从以下链接下载最新的MySQL JDBC驱…

    Java 2023年6月16日
    00
  • Java常用加密算法实例总结

    Java常用加密算法实例总结 在Java开发过程中,常常需要对数据进行加密和解密处理。为了实现这个目的,Java引入了多种加密算法,本文将对Java常用的加密算法进行总结,并给出两个示例说明。 对称加密算法 对称加密算法指的是加密和解密使用相同密钥的算法。它的特点是加密和解密速度快,但密钥容易泄露。Java支持的对称加密算法有DES、3DES和AES。 DE…

    Java 2023年5月19日
    00
  • Struts2学习笔记(2)-路径问题解决

    Struts2学习笔记(2)-路径问题解决 在Struts2的开发中,路径问题是一个常见的问题。特别是在使用跳转动作的时候,如果没有正确设置路径,页面就会出现404错误或导航不到指定的页面。本文将分享两条常用的解决路径问题的方法,帮助您在Struts2的开发中避免类似的问题。 方法一:使用相对路径 在Struts2中,路径分为绝对路径和相对路径两种。相对路径…

    Java 2023年5月20日
    00
  • java实现图书馆管理系统

    Java实现图书馆管理系统攻略 1. 简介 本文将介绍如何用Java语言实现一个简单的图书馆管理系统。该系统可以进行图书的借阅、归还、查看图书信息等功能。 2. 开发环境 Java JDK 1.8 及以上版本 Eclipse IDE 3. 技术栈 Java语言 MySQL数据库 JDBC API 4. 数据库设计 该系统的数据库需要设计三个表:图书表、借阅表…

    Java 2023年5月23日
    00
  • 类卸载的作用是什么?

    类卸载是Java虚拟机在进行垃圾回收时的一个重要步骤。其主要作用是释放已加载类的方法区内存,以便腾出更多的空间来供后续的类加载使用。 类卸载的作用有以下几点: 节约内存空间:随着应用程序的运行,不断有新的类被加载到JVM的方法区中。如果不及时对已加载的类进行卸载,这些类占用的内存空间会越来越多,直到导致JVM无法再加载新类为止。通过类卸载可以及时释放已加载类…

    Java 2023年5月11日
    00
  • Java正则表达式处理特殊字符转义的方法

    当我们使用Java正则表达式处理字符串时,需要注意特殊字符的转义问题。下面是处理特殊字符转义的方法,包括两个示例说明: 1.将特殊字符用反斜杠转义 在Java正则表达式中,一些特殊字符具有特殊含义,比如.需要匹配除了换行符以外的任意字符,而不是只匹配.字符。所以,我们需要使用反斜杠(\)将这些特殊字符转义,表示想要匹配这些特殊字符而非具有特殊含义。 例如,要…

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