启动问题,使用批处理脚本停止 JAR 文件



我正在尝试使用批处理脚本启动和停止jar文件。 这些脚本是,

开始.bat:

@ECHO OFF
call run.bat start

停止.bat:

@ECHO OFF
call run.bat stop

运行.bat:

@ECHO OFF
IF "%1"=="start" (
ECHO start your app
start "app" java  -jar app.jar
) ELSE IF "%1"=="stop" (
ECHO stop app
TSKILL "WINDOWTITLE eq app"
) ELSE (
ECHO please, use "run.bat start" or "run.bat stop"
)
pause

我能够开始运行罐子。但我无法停止该应用程序。似乎 TSKILL 仅可用管理员命令提示符。

要求:

  1. 我想在后台终端中运行 jar 文件以隐藏 java 编译器的详细信息。它应该只显示应用程序正在运行。
  2. 按批处理文件进行技能。(似乎 TSKILL 仅适用于管理员命令提示符,批处理文件打开正常终端(。- 错误即将到来"找不到TSKILL命令"。不确定。

有什么支持吗?

我不知道我是否迟到了还是什么,但肯定有人会受益。我让它以这种方式工作:

@ECHO OFF
IF "%1"=="start" (
ECHO start your app
start "app" java  -jar MyJar.jar) 
ELSE IF "%1"=="stop" (
ECHO stop app
TASKKILL /FI "WINDOWTITLE eq app") 
ELSE (ECHO please, use "test.bat start" or "test.bat stop")
pause

如果你的java代码没有任何GUI界面,甚至它可能在其中运行的命令提示符窗口都应该被隐藏,你可以用javaw替换java,看看情况如何。 至于停止该过程,您甚至没有窗口标题来查找它,因此这是行不通的。

但是,如果应用程序在后台运行很重要,为什么不尝试将其注册为 Windows 服务呢?然后有一个很好的命令,例如"net start ..."和"净停止..."来控制服务。您需要检查的只是 Tanuki Service Wrapper 或 Apache Commons-Daemon。

最新更新