添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

由于公司要部署定时任务上传日志,而服务器是windos servrer。所以需要在windos一直后台启动,简单的java -jar 显然不可以的,因为关闭窗口就关闭程序。

解决方法:
1.创建start.bat文件启动jar包

如start.bat,可以建立txt文本,建立时候重命名。

在start.bat里输入

@echo off
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
java -jar springboot.jar >StartupLog.log  2>&1 &

第二行 是关闭黑窗口
第三行是 启动jar 和 输出控制台日志 并且在后台运行
在这里插入图片描述

2.记得把项目和bat放在同一目录下,双击bat

在这里插入图片描述
自动生成StartupLog.log日志,查看日志看报成功还是失败即可,若失败,根据失败信息针对处理即可。

如端口被占用:
1.关闭windows上启动的服务
2.根据端口号查看pid
3.强制杀死进程
命令:netstat -aon|findstr "8080"
在这里插入图片描述
命令:taskkill /f /pid 9523
在这里插入图片描述

3. 创建stop.bat关闭特定端口的java程序

如果java程序是8080端口,在stop.bat输入

@echo off
set port=8080
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do taskkill /f /pid %%m
4. 创建restart.bat先根据端口关闭java程序,再启动jar包
@echo off
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
set port=8080
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do taskkill /f /pid %%m &
java -jar asus-1.0.0.jar > start2.log 2>&1 &
5. 批量重启jar

修改restart.bat文件

@echo off
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
set port1=8080
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port1%"') do taskkill /f /pid %%m &
set port2=8081
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port2%"') do taskkill /f /pid %%m &
set port3=8082
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port3%"') do taskkill /f /pid %%m &
java -jar springboot1.jar >StartupLog1.log  2>&1 &
java -jar springboot2.jar >StartupLog2.log  2>&1 &
java -jar springboot3.jar >StartupLog3.log  2>&1 &
效果如下:
如果这篇文章对您有帮助,可否支持一下博主? 点赞+关注呗,谢谢您。 windows10、linux,后台启动Jar包打印日志 前言需要知道什么是文件,百度百科地址:什么是bat:https://baike.baidu.com/item/bat/365230?fr=aladdin需要什么是脚本,百度百科地址:什么是shell脚本:https://baike.baidu.com/item/Shell%E8%84%9A%E6%9C%AC/572265?fr=aladdin 这个脚本会杀死所有Java进程,这可能会影响到其他正在运行的Java应用程序。如果您有多个Java应用程序在运行,您需要修改脚本,使其只杀死与特定JAR文件相关的进程。要编写一个可以重启Java JAR包Windows脚本,您可以使用批处理(Batch)脚本。以下是一个简单的示例,它将尝试关闭正在运行的JAR进程,然后重新启动它。首先,确保您的JAR文件具有唯一的名称,这样可以在批处理脚本中准确地找到它。脚本将尝试停止Java应用程序(如果它在运行),然后重新启动它。的进程,然后启动新的JAR包。 如果是在 `Linux` 下开机自启一个服务相对比较简单,这次遇到一个需求是关于 `Windows` 开机自启的: 1. 在 `Windows` 环境下开机自动运行一个 `SpringBoot` 服务; 2. 而且由于是一个后台服务,要求对终端用户无感知; 3. 为后期维护方便,需要将原来的控制台输出记录到日志文件。 以下实现方法主要用到了 `Windows` 环境下基本的批处理脚本以及 `VB` 脚本(主要是为了控制黑窗口的隐藏,同时可以输出服务的日志信息)。 Windows系统使用java -jar m命令行运行Java项目会弹出黑窗。首先容易误点导致程序关闭,其次我们希望能在Windows系统做到开机自动启动。因此对于SpringBoot程序,目前主流的方法是采用winsw,简单容易配置。 Spring Boot 构建 jar 可以直接启动Web项目,不依赖 Tomcat 应用服务器(spring boot web内部集成了tomcat _),但是每次输入命令都比较麻烦(启动还好,主要是关闭) ,那么该如何偷懒呢 闲话少说,下面是我的启动脚本 # 开头的代码行都是注释,真正有用的是 打印信息说明启动项目,另外一个则是启动项目,在后台运行,很简单 #!/bin/bash #Progr... 批处理bat启动java代码无法输出log4j日志2014-04-08 16:19:001147533288原创710使用批处理调用java public static void main(String[] args){}方法时,虽然src下配置log4j.propreties,但仍然无法输出日志,反复修改认为配置文件没有生效。main方法开始添加如下代码,问题解决:[sourcecode lan... 设置 Additional command line parameters选项为 -encoding utf-8。###4.然后在 Server > VM options 设置为 -Dfile.encoding=UTF-8。意思是 编码格式出错,对方技术人员也说大概率是编码的问题。最新在做小程序支付项目,对接易通支付时,对方返回。所以打算从编码格式入手解决。