Windows上部署springboot项目并挂载后台

文章目录

  • 前言
  • 一、准备工作
  • 二、步骤
    • 1. 构建 Spring Boot 项目
    • 2. 下载并安装 NSSM
    • 3. 使用 NSSM 安装 Spring Boot 应用作为服务
    • 4. 管理 Spring Boot 服务
  • 总结


前言

  在 Windows 10 裸机(即没有预安装服务器操作系统的普通 Windows 10 桌面版)上部署 Spring Boot 项目并将其作为后台服务运行,可以采用一些工具和技巧来实现。这里我会介绍一种使用 NSSM(Non-Sucking Service Manager)工具的方法,它可以将 Java 应用程序包括 Spring Boot 应用程序作为 Windows 服务运行。


一、准备工作

  1. 确保环境中已安装 Java Development Kit (JDK)

    • 访问 Oracle JDK 或者 OpenJDK 官方网站下载并安装适合你操作系统的 JDK 版本。
    • 设置环境变量 JAVA_HOME 指向 JDK 的安装路径,并将 %JAVA_HOME%\bin 添加到系统的 PATH 变量中。
  2. 安装 Apache Maven(如果需要构建项目):

    • 访问 Apache Maven 官方网站下载最新版本的 Maven 压缩包。
    • 解压到合适的目录,并配置环境变量 M2_HOME 指向 Maven 的安装路径,并将 %M2_HOME%\bin 添加到系统的 PATH 变量中。
  3. 下载 Spring Boot 项目源代码

    • 使用 Spring Initializr 或者其他方式生成或获取你的 Spring Boot 项目源代码。

二、步骤

1. 构建 Spring Boot 项目

如果你的项目尚未构建,需要先在命令行中进入项目根目录,执行 Maven 打包命令:

mvn package

这将在 target 目录下生成一个可执行的 JAR 文件,例如 my-spring-boot-app-0.0.1-SNAPSHOT.jar

2. 下载并安装 NSSM

  NSSM 是一个第三方的开源工具,可以将任何可执行程序包括 Java 应用作为 Windows 服务运行。你可以从 NSSM 的官方网站下载最新版本的压缩包。

  • NSSM官网下载

  • 解压 NSSM 压缩包到一个目录,例如 C:\nssm.

3. 使用 NSSM 安装 Spring Boot 应用作为服务

  1. 打开命令提示符(管理员权限)。

  2. 进入 NSSM 的安装目录,例如:

    cd C:\nssm
    
  3. 使用以下命令安装 Spring Boot 应用为服务(假设你的 Spring Boot JAR 文件路径为 C:\path\to\my-spring-boot-app-0.0.1-SNAPSHOT.jar):

    nssm install MySpringBootApp "C:\path\to\java.exe" "-jar C:\path\to\my-spring-boot-app-0.0.1-SNAPSHOT.jar"
    
    • MySpringBootApp 是服务的名称,你可以根据你的项目自行命名。
    • C:\path\to\java.exe 是 Java 运行时的路径,通常在 %JAVA_HOME%\bin\java.exe
    • "-jar C:\path\to\my-spring-boot-app-0.0.1-SNAPSHOT.jar" 是启动 Spring Boot 应用的命令行参数。
  4. 确认安装成功后,你可以在 Windows 服务管理器中找到并启动你的服务 MySpringBootApp

4. 管理 Spring Boot 服务

  • 启动服务: 在服务管理器中找到 MySpringBootApp,右键点击启动。
  • 停止服务: 同样在服务管理器中,右键点击停止服务。
  • 自动启动: 可以在服务属性中设置服务随系统启动而自动启动。

总结

  • 通过 NSSM 工具,你可以方便地将 Spring Boot 应用程序打包成 Windows 服务,并在后台持续运行。这种方法适用于 Windows 10 桌面版,使得你可以在开发或测试环境中模拟类似服务器的部署和运行。
  • 欢迎大家提出建议以及批评,有任何问题可以私信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/46797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PostgreSQL 如何应对因大量并发更新导致的锁竞争?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 如何应对因大量并发更新导致的锁竞争一、锁竞争的原因及影响(一)什…

国外的一组B端界面,个性化是标配,为什么?

因为国外商务合作关系非常的纯粹,我出钱你出力,你干好我买单,没有这么多弯弯绕。 匠心接单中...8年前端开发和UI设计接单经验,完工项目1000,持续为友友们分享有价值、有见地的干货观点,有业务需求的老铁&am…

[A-04] ARMv8/ARMv9-Cache的相关策略

ver0.3 前言 前面我们已经通过三篇文章反反复复的讲Cache的概念、结构、架构,相信大家对Cache已经大概有了初步的了解。这里简单归纳一下: (1) Cache从硬件视角看,是连接PE-Core和主存的一种存储介质,存储的数据是主存中数据的副本&#xf…

Python解释器详解及其应用场景

Python解释器及其应用场景 一、Python解释器概述 Python解释器是Python程序运行的核心,它负责读取Python代码(即.py文件)并将其转换为机器语言,从而使计算机能够执行。简单来说,Python解释器就像是Python代码与计算机…

完美解决ImportError: cannot import name ‘PILLOW_VERSION‘的正确解决方法,亲测有效!!!

完美解决ImportError: cannot import name PILLOW_VERSION’的正确解决方法,亲测有效!!! 亲测有效 完美解决ImportError: cannot import name PILLOW_VERSION的正确解决方法,亲测有效!!&#xf…

鸿蒙模拟器(HarmonyOS Emulator)Beta申请审核流程

文 | Promise Sun 一.背景: 鸿蒙项目开发需要使用模拟器进行开发测试,但目前想在DevEco Studio开发工具中使用模拟器就必须到华为官网进行报名申请,参加“鸿蒙模拟器(HarmonyOS Emulator)Beta活动申请”。 申请审核通…

element-ui dialog 嵌套

dialog 内部嵌套 dialog,内层的 dialog 层级显示会遮罩在内容的 dialog 内容区域之上,内层 dialog 添加 append-to-body 属性即可,如官方文档:

SpringBoot系列:通过AOP+注解优雅实现操作日志记录

文章目录 前言一、简介1.1 操作日志在企业应用中的重要性1.2 使用AOP和注解实现操作日志记录的好处 二、开发环境三、准备工作3.1 创建操作日志记录表3.2 创建系统日志实体类 四、代码实现4.1 创建业务枚举类4.2 创建日志注解4.3 创建操作状态枚举类4.4 创建IP工具类4.5 创建切…

【docker镜像如何在不同的架构上运行】

背景 公司要求在国产的系统和cpu的机器上部署java项目,一开始我以为docker是跨平台通用的,直到我遇到了 standard_init_linux.go:220: exec user process caused "exec format error"才知道原来不同架构的cpu下不能互通,我的环境…

人像视频预处理【时间裁剪+画面裁切+调整帧率】

在视频处理中,cut(裁剪)、crop(画面裁切)和fps(帧率调整)这三个操作的顺序安排对最终的视频质量和效率有重要影响。以下是一种推荐的顺序和理由,旨在提高效率和减少错误:…

算法力扣刷题记录 四十八【513.找树左下角的值】

前言 二叉树篇继续。 记录 四十八【513.找树左下角的值】 一、题目阅读 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,nul…

【k8s部署elasticsearch】k8s环境下安装elasticsearch集群和kibana

文章目录 简介一.条件及环境说明二.需求说明三.实现原理及说明四.详细步骤4.1.规划节点标签4.2.创建三个statefulset和service headless配置4.3.创建service配置 五.安装kibana六.调整索引分区七.安装说明 简介 k8s集群中搭建有elasticsearch服务一般都会用到pvc,但…

在线工具--将Json结构映射为另外一种Json结构

具体请前往:在线工具-将json结构映射为另外一个json结构

使用ChatGPT来撰写和润色学术论文的教程(含最新升级开桶ChatGpt4教程)​​

现在有了ChatGPT4o更加方便了, 但次数太少了 想要增加次数可以考虑升级开桶ChatGpt4​​ 一、引言 在学术研究中,撰写高质量的论文是一项重要的技能。本教程将介绍如何利用ChatGPT来辅助完成从论文构思到润色的全过程。 二、使用ChatGPT写论文 1. 写标题 Title/T…

如何在电磁仿真软件CST中设置自由边界?

CST中的默认仿真边界是六面体,那如果想要设置自由边界,应该怎么做呢?下面以一个简单例子说明设置自由边界的方法。(1)想要实现自由边界需要在六面体内做填充,首先根据需要创建一个形状,本例中想…

20240716 Codeforces题目

A - Split the Multiset 题目 多集是一组数字,其中可以有相等的元素,数字的顺序无关紧要。例如, { 2 , 2 , 4 } \{2,2,4\} {2,2,4} 是一个multiset。 你有一个多集 S S S 。最初,multiset只包含一个正整数 n n n 。即 S {…

ZBrush入门使用介绍——1、基本操作

大家好,我是阿赵。   这期开始介绍一下ZBrush的用法。   ZBrush作为一个老牌的雕刻模型软件,已经有很多年的历史了。阿赵我接触它已经是将近20年前在首都师范大学学习三维影视课程的时候了。当时老师讲得比较随便,所以后来自己又找了一些…

Armv8-R内存模型详解

目录 1.内存模型的必要性 2.Armv8-R内存模型分类 2.1 Normal memory 2.2 Device Memory 2.2.1 Gathering 2.2.2 Reordering 2.2.3 Early Write Acknowledgement 3.小结 大家好,今天是悲伤的肌肉。 在调研区域控制器芯片时,发现了S32Z、Stellar …

代码随想录训练营Day 72|拓扑排序精讲、dijkstra(朴素版)精讲

1.拓扑排序精讲 代码随想录 题目&#xff1a;117. 软件构建 代码&#xff1a; #include <iostream> #include <vector> #include <queue> #include <unordered_map> using namespace std; int main(){// 输入int n,m,s,t;cin >> n >> m;u…

AI Earth——MuSyQ 30m/10天叶片叶绿素含量产品(中国)应用 app

应用介绍 ​​​​​​​30m/10天合成的叶片叶绿素含量产品是空天院多源协同定量遥感产品生产系统((Multi-source data Synergized Quantitative remote sensing production system,MuSyQ))产品之一。 叶片叶绿素含量(Chlleaf)是植被遥感监测中最重要的参数之一,目前国…