网站首页 > java教程 正文
以下是一个简单的 Windows批处理脚本,用于启动 Java 应用程序的 jar 包和杀死该应用程序的进程:
@echo off
rem 定义 Java 进程 ID 文件路径
set PID_FILE=app.pid
rem 启动 Java 应用程序
:start
echo Starting Java process...
start "" java -jar app.jar > app.log 2>&1
tasklist /fi "WINDOWTITLE eq app.jar" | findstr "java.exe" > nul
if errorlevel 1 (
echo Failed to start Java process
exit /b 1
) else (
for /f "tokens=2" %%a in ('tasklist /fi "WINDOWTITLE eq app.jar" ^| findstr "java.exe"') do set JAVA_PID=%%a
echo Java process started with PID %JAVA_PID%
echo %JAVA_PID% > %PID_FILE%
)
rem 杀死 Java 应用程序进程
:stop
if exist %PID_FILE% (
set /p JAVA_PID=<%PID_FILE%
taskkill /pid %JAVA_PID% /f > nul
del %PID_FILE%
echo Java process stopped
) else (
echo Java process is not running
)
rem 根据命令参数执行对应操作
if "%1" == "start" goto start
if "%1" == "stop" goto stop
echo Usage: %0 {start^|stop}
exit /b 1
上述脚本中,使用 set 命令定义了 Java 进程 ID 文件路径 PID_FILE,并实现了两个标签 :start 和 :stop,分别用于启动和杀死 Java 应用程序进程。
在 :start 标签中,使用 start 命令启动 Java 应用程序,并将输出重定向到文件 app.log 中;同时,使用 tasklist 命令检查进程列表中是否存在指定的 Java 进程,并通过 findstr 命令过滤出包含关键字 "java.exe" 的行。如果没有找到,则表示 Java 进程启动失败;否则,从 tasklist 命令输出结果中提取出 Java 进程的进程 ID,并将其写入到文件 %PID_FILE% 中以便后续停止应用程序时使用。
在 :stop 标签中,根据进程 ID 文件中的内容杀死 Java 应用程序进程,并删除进程 ID 文件。最后,使用 if 语句根据传入的命令参数执行对应的操作。
可以将上述脚本保存为批处理文件(app.bat),然后使用 start命令启动 Java 应用程序:
app.bat start
使用stop命令停止应用程序:
app.bat stop
注意:使用时,需要将文件名、应用程序 jar 包名称和应用程序入口类名称等信息修改为实际的值。
猜你喜欢
- 2024-10-29 推荐一款码云GVP级别Star近1W的开源Java后台管理系统:RuoYi
- 2024-10-29 Android Studio编写运行测试纯java代码可带main()函数
- 2024-10-29 Java官方笔记1编写运行Java程序(java运行环境下载)
- 2024-10-29 JVM是如何运行Java代码的(jvm怎么运行的)
- 2024-10-29 JAVA线上问题排查利器-Arthas(java在线答疑系统)
- 2024-10-29 用java代码启动一个电脑上的应用程序
- 2024-10-29 远程调试Java程序(java控制远程设备)
- 2024-10-29 BeanShell:动态执行java代码(java动态运行一段代码)
- 2024-10-29 Java线上问题排查神器Arthas实战分析
- 2024-10-29 开源的Java代码生成器(java开源代码网站)
你 发表评论:
欢迎- 07-15采用Oracle OSB总线进行服务注册和接入
- 07-15javaEE 新闻管理系统 oracle11+tomcat6
- 07-15从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 07-15如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 07-15【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 07-15【mykit-data】 数据库同步工具(数据库表同步工具)
- 07-15[Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- 07-15Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- 最近发表
-
- 采用Oracle OSB总线进行服务注册和接入
- javaEE 新闻管理系统 oracle11+tomcat6
- 从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 【mykit-data】 数据库同步工具(数据库表同步工具)
- [Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- Oracle数据库云服务系列新增前所未有的企业级功能
- 直播预告丨如何实现Oracle存储过程到java的一键转化
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)