教你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日

相关文章

  • Java中的异常处理如何提高程序性能?

    Java中的异常处理机制是保证程序健壮性和可靠性的一项重要特性。合理利用异常处理可以提高程序的性能和可读性,下面我们来详细讲解Java中的异常处理如何提高程序性能。 1. 不要滥用异常 异常处理机制是有代价的,如果频繁抛出异常,可能会造成性能问题。因为抛出异常需要创建新的异常对象,这需要时间和内存。所以,在代码编写时,我们应该避免不必要的异常抛出,只在必要时…

    Java 2023年4月27日
    00
  • 堆内存大小的设置有哪些方式?

    关于设置堆内存大小,我们可以采取以下几种方式: 1. 通过命令行参数设置 在启动Java程序时,可以通过命令行参数指定堆内存的大小。具体命令为: java -Xms<initial heap size> -Xmx<maximum heap size> MyApp 其中,-Xms 参数指定堆内存的初始大小,-Xmx 参数指定堆内存的最大…

    Java 2023年5月10日
    00
  • Java集合之Set接口及其实现类精解

    Java集合之Set接口及其实现类精解 Set接口是Java集合框架中的一种无序集合,它只能包含不重复的元素。本文将会详细讲解Set接口及其实现类的特点和使用方法。 Set接口 Set接口是Java集合框架中的一个接口,它继承了Collection接口,表示一个不允许重复元素的无序集合。Set接口中定义了以下常用的方法: add(E e):添加指定元素到集合…

    Java 2023年5月18日
    00
  • Java中的ThreadLocal功能演示示例

    下面是“Java中的ThreadLocal功能演示示例”的完整攻略。 简介 在 Java 中,ThreadLocal 是一个特殊的工具,它可以为每个线程提供一个独立的副本以保存该变量。这个副本只有对应线程可以访问和修改,其他线程不可访问。这个功能的实现依赖于 ThreadLocalMap 类和 Thread 类的成员变量 ThreadLocal.Thread…

    Java 2023年5月26日
    00
  • php使用环形链表解决约瑟夫问题完整示例

    这里是使用环形链表解决约瑟夫问题的完整攻略。 什么是约瑟夫问题? 约瑟夫问题是一种经典的问题,它的具体描述为:$n$ 个人围成一圈,从第 $k$ 个人开始报数,报到 $m$ 的人出圈,然后从下一个人开始重新报数,直到剩余一个人为止。 如何使用环形链表解决约瑟夫问题? 通过使用环形链表,我们可以很方便地实现约瑟夫问题的求解。具体过程如下: 首先创建 $n$ 个…

    Java 2023年5月26日
    00
  • 详细理解JAVA面向对象的封装,继承,多态,抽象

    JAVA面向对象的基本概念 在Java中,“一切皆对象”,Java程序就是通过面向对象的编程思想来实现的。面向对象的编程思想的核心概念主要包括封装、继承、多态和抽象。这些概念描述了Java对象与类之间的关系和相互作用。 封装 封装是指将数据和行为包装在一起,形成一个类。封装的主要目的是隐藏类的实现细节,只对外部暴露必要的接口,从而达到数据的安全性。 在Jav…

    Java 2023年5月26日
    00
  • SpringSecurity实现动态url拦截(基于rbac模型)

    下面是详细讲解 Spring Security 实现动态 URL 拦截(基于 RBAC 模型)的完整攻略: 1. 什么是 Spring Security Spring Security 是一个基于 Spring 框架的安全框架,提供了完善的身份认证和授权功能。 2. 什么是 RBAC 模型 RBAC(Role-Based Access Control)模型是…

    Java 2023年5月20日
    00
  • js表格分页实现代码

    下面我将为你详细讲解“JS表格分页实现代码”的完整攻略,包含以下几个部分: 准备工作 实现分页逻辑 示例说明 1. 准备工作 在开始编写代码之前,我们需要先准备好需要用到的HTML、CSS和JS文件,并进行引入。HTML文件中需要包含需要分页的表格,CSS文件中需要设定表格样式,JS文件中需要实现分页逻辑。 HTML部分代码: <table class…

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