【.bat脚本]启停Java服务

news/2025/1/6 8:39:51/文章来源:https://www.cnblogs.com/o-O-oO/p/18603491

Java 程序在 Windows 环境中的启动与关闭指南

一、Java 程序启动

在 Windows 环境中,可以使用批处理脚本(.bat 文件)来启动 Java 程序。根据是否需要将日志信息打印到文件中,我们有两种不同的启动方式。

  1. 不打印日志的 Java 程序启动

如果你不需要记录程序的日志信息,可以创建一个简单的批处理文件,内容如下:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
@echo off
:: 定义主类名和 JAR 包路径
set MAIN_CLASS=com.example.MainClass
set JAR_FILE=C:\path\to\targetjarfile.jar:: 启动 Java 程序,不记录日志
start javaw -jar "%JAR_FILE%"
@echo off:防止命令回显。
start:使 Java 应用程序在一个新的窗口中启动,并且不会阻塞批处理脚本的执行。javaw 是 Java 的无头版本,适合用于图形用户界面 (GUI) 应用或不需要控制台输出的应用。
%JAR_FILE%:引用定义的环境变量。
  1. 打印日志的 Java 程序启动

如果希望实时记录程序的日志信息到一个文件中,可以创建一个包含以下内容的批处理文件:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
@echo off
:: 定义主类名和 JAR 包路径
set MAIN_CLASS=com.example.MainClass
set JAR_FILE=C:\path\to\targetjarfile.jar
:: 动态生成日志文件名
for /f "tokens=2 delims==" %%i in ('"wmic os get localdatetime /value"') do set datetime=%%i
set LOG_FILE=C:\path\to\logs\program-%datetime:~0,8%.log:: 启动 Java 程序,并将日志输出到动态生成的文件中
java -jar "%JAR_FILE%" > "%LOG_FILE%" 2>&1
for /f ... wmic os get localdatetime /value:获取当前日期时间并格式化为yyyyMMdd 格式,用于创建唯一的日志文件名。
> "%LOG_FILE%" 2>&1:将标准输出和错误输出重定向到日志文件中。
java:这里使用的是常规的 Java 命令,因为我们需要看到控制台输出以便于调试。

二、Java 程序关闭

为了安全地关闭 Java 程序,我们可以根据进程名称或占用的端口号来查找并终止相关的进程。Windows 提供了多种工具来实现这一点。

  1. 根据程序名关闭 Java 程序

如果你知道 Java 程序的 JAR 文件名或者主类名,可以使用以下批处理脚本来关闭它:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
@echo off
:: 查询Java进程的PID (targetjarfile.jar 目标 java 程序jar名称, 可包括路径)
for /f "tokens=2 delims= " %%a in ('tasklist /FI "IMAGENAME eq javaw.exe" /FO LIST ^| findstr "PID"') do set PID=%%aif defined PID (echo Java程序已找到,正在关闭...taskkill /F /PID %PID%echo Java程序已关闭
) else (echo Java程序未找到或未在运行
)
tasklist:列出所有正在运行的任务。
findstr "PID":从任务列表中筛选出 PID 行。
taskkill /F /PID %PID%:强制 (/F) 终止指定 PID 的进程。

请注意,上述脚本假设你只运行了一个 Java 程序。如果有多个 Java 进程,你需要进一步过滤以确保关闭正确的进程。你可以通过tasklist 命令结合findstr 来更精确地匹配特定的 JAR 文件名或主类名。
2. 根据端口关闭 Java 程序

有时你知道的是程序监听的端口号,而不是它的 JAR 文件名。这时可以使用如下批处理脚本来关闭占用该端口的进程:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
@echo off
:: 要检测是否被使用的端口信息
set PORT=6379  :: 将这里的端口号替换为实际使用的端口号:: 查找占用指定端口的进程ID
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :%PORT%') do set PID=%%aif defined PID (echo Process with PID %PID% is using port %PORT%, killing the process...taskkill /F /PID %PID%echo Process killed
) else (echo Port %PORT% is not in use
)
netstat -ano:显示所有活动的网络连接以及对应的进程 ID。
findstr :%PORT%:查找包含指定端口号的行。
for /f "tokens=5" %%a:提取第五个字段,即进程 ID。
taskkill /F /PID %PID%:强制终止指定 PID 的进程。

结论

以上是针对 Java 程序在 Windows 环境下的启动和关闭脚本的整理。无论是选择记录日志还是不记录,亦或是通过程序名或端口来停止服务,都有相应的批处理脚本可以帮助你有效地管理 Java 应用程序。确保在执行这些操作之前,你有足够的权限,并了解每个命令的具体含义,以避免不必要的问题。对于复杂的环境,建议测试这些脚本,确保它们按照预期工作。

个人观点,仅供参考


作者声明该文章中所有脚本:仅供参考和学习讨论使用,如有雷同纯属巧合

微信搜索并关注公众号:远通无霸哥 更多实用知识持续更新中

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

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

相关文章

【Hadoop框架】Yarn 核心组件+工作流程+基本使用

一、Yarn的基本概念和架构二、Yarn的工作流程三、Yarn的核心组件及其功能 ‌ 3.1 ResourceManager‌3.2 NodeManager3.3 ApplicationMaster四、Yarn的基本使用4.1 Yarn Shell 命令4.2 Yarn Shell 使用示例4.2.1 首先确定 Yarn 集群启动4.2.2 发起任务4.2.3 查看任务4.2.4 终止…

基于中间畸变流估计的滚动快门校正

基于中间畸变流估计的滚动快门校正提出通过直接估计从全局快门(GS)到滚动快门(RS)的失真,来校正滚动快门(SS)失真的图像。现有的方法通常使用从RS到GS的未失真流进行校正。它们最初从连续的RS帧预测流,随后使用时间相关的缩放因子将其重新缩放为从RS帧到底层GS图像的位…

鸿蒙NEXT开发案例:颜文字搜索器

【引言】 本文将介绍一个名为“颜文字搜索器”的开发案例,该应用是基于鸿蒙NEXT平台构建的,旨在帮助用户快速查找和使用各种风格的表情符号。通过本案例的学习,读者可以了解如何在鸿蒙平台上进行数据处理、UI设计以及交互逻辑的实现。 【环境准备】 • 操作系统:Windows 10…

CycleINR:任意尺度医学数据三维超分辨率的循环隐式神经表示

CycleINR:任意尺度医学数据三维超分辨率的循环隐式神经表示在医学3D数据领域,如CT和MRI图像,普遍的各向异性分辨率的特点是层内分辨率高,但层间分辨率低。相邻切片之间的分辨率降低带来了挑战,阻碍了最佳的观看体验,并阻碍了稳健的下游分析算法的发展。各种体积超分辨率算…

用于大规模单像素成像的双尺度变换器

用于大规模单像素成像的双尺度变换器单像素成像(SPI)是一种潜在的计算成像技术,通过解决单像素探测器捕获的少量测量值中的病态重建问题来产生图像。深度学习在SPI重构方面取得了令人瞩目的成功。然而,之前较差的重建性能和不切实际的成像模型,限制了其在现实世界中的应用…

应用题3

这道题知识点参考书116页二叉树遍历相关知识。 知识点:二叉树中序遍历,后序遍历的顺序是什么如何将一棵二叉树转化为树(或森林)中序遍历(左->根->右)后序遍历(左->右->根)根据中序遍历和后序遍历的特点,我们可以知道,中序遍历中根节点在中间,后序遍历中…

河北知识付费系统热门课程是什么

在当今科技快速发展的社会环境中,教育领域也随之发生着深刻的变革。尤其是随着互联网及数字媒体的应用日渐普及,知识付费及在线教育成为了新时代学习者的优选途径。河北的知识付费系统通过其丰富的教学资源与创新的教学模式满足了不同年龄、层次的学习者多样化的需求。为了回…

转载:【AI系统】AI 框架作用

深度学习范式主要是通过发现经验数据中,错综复杂的结构进行学习。通过构建包含多个处理层的计算模型(网络模型),深度学习可以创建多个级别的抽象层来表示数据。例如,卷积神经网络 CNN 可以使用大量图像进行训练,例如对猫狗分类去学习猫和狗图片的特征。这种类型的神经网络…

转载:【AI系统】卷积操作原理

卷积是神经网络里面的核心计算之一,它是一种特殊的线性运算。而卷积神经网络(CNN)是针对图像领域任务提出的神经网络,其受猫的视觉系统启发,堆叠使用卷积层和池化层提取特征。它在 CV 领域方面的突破性进展引领了深度学习的热潮。 回到卷积本身,其变种丰富、计算复杂,神…

转载:【AI系统】Winograd 算法

在上一篇文章的介绍中,介绍了 Im2Col 技术,它通过将三维张量重新排列成矩阵形式,然后利用基于内存访问局部性的优化库如 GEMM(通用矩阵乘法库)加速计算。随后,还探讨了空间组合优化,这一种利用局部性原理来提升效率的技术。 在本文将重点介绍 Winograd 优化算法,它是矩…

转载:【AI系统】Im2Col 算法

作为早期的 AI 框架,Caffe 中卷积的实现采用的是基于 Im2Col 的方法,至今仍是卷积重要的优化方法之一。 从上一篇文章的介绍中可以看到,在 CNN 中卷积直接计算的定义中,卷积核在输入图片上滑动,对应位置的元素相乘后相加求和,滑窗的大小由卷积核决定。由于滑动操作时的窗…

转载:【AI系统】模型转换基本介绍

模型转换的主要任务是实现模型在不同框架之间的流转。随着深度学习技术的发展,训练框架和推理框架的功能逐渐分化。训练框架通常侧重于易用性和研究人员的算法设计,提供了分布式训练、自动求导、混合精度等功能,旨在让研究人员能够更快地生成高性能模型。 而推理框架则更专注…