繁体   English   中英

如何停止执行的 Jar 文件

[英]How To stop an Executed Jar file

感觉这是一个愚蠢的问题,但我似乎无法弄清楚。 当我在 Windows 上运行 *.jar 文件时,它不会出现在任务管理器进程中。 我怎样才能终止它,我已经尝试过 TASKKILL 但它对我也不起作用。

在 Linux 上

ps -ef | grep java

它将显示进程列表,其中一个将是您的可执行 jar。 只需通过其进程 ID 终止该进程即可。

sudo kill -9 <pid>

有什么办法可以从同一个 jar 文件的 java 代码中做到这一点。 就像一旦过程完成就杀死自己一样。

通过jps命令 & 找到进程 id 并通过taskkill命令杀死它们。

请注意, taskkill需要“ -f ”,否则它可能只是发送一个终止信号而不是实际终止它。

在此处输入图片说明

您是否尝试杀死任务管理器中的 java.exe 进程? 到时候就该停止了。

您可以通过查找“java”或“javaw”进程来识别任务管理器中的进程。 如果您正在运行多个 java 进程,就会出现问题。 如果您能够识别您的进程,只需杀死/结束它。

其他方式:

跑步

jps -lv

它显示了所有正在运行的 Java 进程的 PID 和命令行。 确定要终止的任务的 PID。 然后使用命令:

taskkill /PID <pid>

杀死你的 jar 进程。

您可以打开 jvisualvm 来查看正在运行的 java 进程。 进程 ID 显示在那里。 现在打开任务管理器转到进程选项卡并添加要显示的进程 ID 列。 现在您可以选择正确的 java.exe 或 javaw.exe 杀死

正如每个人所说,它是 java 或 javaw 进程。 问题是当你运行多个这样的应用程序时。 一种解决方法可能是对流程进行不同的命名,如下所述:

如何为 Java 程序设置进程名称?

spring boot 启动/停止示例(在 Windows 操作系统上)。

启动文件

@ECHO OFF
call run.bat start

停止.bat:

@ECHO OFF
call run.bat stop

运行.bat

@ECHO OFF
IF "%1"=="start" (
    ECHO start your app name
    start "yourappname" java -jar -Dspring.profiles.active=prod yourappname-0.0.1.jar
) ELSE IF "%1"=="stop" (
    ECHO stop your app name
    TASKKILL /FI "WINDOWTITLE eq yourappname"
) ELSE (
    ECHO please, use "run.bat start" or "run.bat stop"
)
pause

如果您通过命令行运行 JAR 文件并且它正在运行。 按,
在 Windows 中:
• Ctrl+C:关闭进程,(可能需要管理员权限)
在 Linux 中:
• Ctrl+C:礼貌地要求进程立即关闭。
• Ctrl+ \\ :无情地杀死当前在前台的进程。

在 Windows 任务管理器中,您将看到名为“java.exe”的进程。 终止您的应用程序将停止的进程。

要了解流程,请先转到任务管理器中的应用程序,然后通过选择该应用程序进入流程。 它将引导您进入该应用程序的确切过程。

问候, 杰尼尔

如果您使用的是 jframe 并且希望您的应用程序在单击“X”时停止:

这是一个教程: http : //tips4java.wordpress.com/2009/05/01/closure-an-application/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM