草庐IT

windows下bat脚本启动springboot项目jar包

12程序猿 2023-04-22 原文

windows下bat脚本启动springboot项目jar包

一、SpringBoot打jar包

idea打开项目,如果项目是 gradle 仓库,使用如下方式,进行打包:双击bootJar

1.双击clean,清空之前的打包记录

2.双击 bootJar,进行打包,打包文件 在项目根目录build下的libs下

idea打开项目,如果项目是 maven仓库,使用如下方式,进行打包:
项目右键—》Run Maven—>clean—>install

二、jar包部署运行

2.1 jar包运行的方式:

最简单的方式。在jar包所在目录位置,打开cmd窗口,输入
java -jar xxx.jar
即可运行项目,例:

但是命令行一旦关闭,项目会停止运行

为保证项目不停止运行,可以写一个bat批处理脚本。使该项目在后台运行

2.2 bat批处理脚本(单次)

使用文本文档输入如下内容:

@echo off
java -jar xxx.jar
exit

保存为 start.bat文件

双击生成的bat脚本:


启动成功。

注意: 该脚本会执行项目,但是不会关闭窗口,一旦关闭窗口,项目会关闭。

2.3 bat批处理脚本(后台运行,没有命令弹窗)

要想在后台执行该jar,需要以下脚本:

@echo off
start javaw -jar D:\work-zakj\hwariot-mix-service\build\libs\xx.jar
exit

其中,jar包位置需要绝对路径,不然有可能会报错:“Unable to access jarfile”

将脚本更名为start.bat。执行即可后台启动该项目。


双击即可。想看是否启动成功,可以访问项目中的接口是否可以正常访问来判断。

2.3 关闭项目

关闭项目:根据启动项目的端口号,查看端口进程,杀死进程


1.cmd窗口查看被占用的端口号:
netstat -ano | findstr 8888
2.查看PID对应的进程
tasklist | findstr “pid”
3.杀死占用的端口号:
taskkill /pid 27008 /f

延申:bat批处理文件的多样化

编写脚本:单次启动:

@echo off
set port=8888
for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %port%`) do (
	if [%%d] EQU [LISTENING] (
		set pid=%%e
	)
)
if "%pid%" == "" goto start
if not "%pid%" == "" goto run

:run
echo %port% (采集程序运行中)port is opening...
pause
exit

:start
echo (开始启动采集程序)starting collect program...
java -jar D:\work-zakj\hwariot-mix-service\build\libs\hwariot-mix-service-0.0.1-SNAPSHOT.jar
echo.Starting Success!
exit

编写vbs文件,启动(没有命令弹窗,后台运行)

set ws=WScript.CreateObject("WScript.Shell") 
ws.Run "F:\tianjin\tianjin\tj_collect_data.bat /start",0


关闭项目:

@echo off
SET port=8888
for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %port%`) do (
	if [%%d] EQU [LISTENING] (
		set pid=%%e
	)
)
echo close : %port%  %pid%
if not "%pid%" == "" taskkill /f /pid %pid%
 
echo start
PING 127.1 -n 5 >nul
java -jar D:\work-zakj\hwariot-mix-service\build\libs\hwariot-mix-service-0.0.1-SNAPSHOT.jar
 
exit

有关windows下bat脚本启动springboot项目jar包的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  3. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  4. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  5. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  6. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  7. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  8. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  9. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  10. UE4 源码阅读:从引擎启动到Receive Begin Play - 2

    一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame

随机推荐