【问题标题】:How To stop an Executed Jar file如何停止执行的 Jar 文件
【发布时间】:2013-06-14 10:23:08
【问题描述】:

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

【问题讨论】:

  • 问题不清楚。你能详细说明一下吗?
  • 它将显示为“java”或“javaw”。
  • 你在使用 jframe 吗?

标签: java windows jar executable-jar


【解决方案1】:

在 Linux 上

ps -ef | grep java

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

sudo kill -9 <pid>

有没有办法从同一个jar文件的java代码中做到这一点。就像进程完成后杀死自己一样。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      您是否尝试在任务管理器中杀死 java.exe 进程?然后它应该停止。

      【讨论】:

      • 哦,但是如果我不想停止 java 怎么办?我只想停止当前进程
      【解决方案4】:

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

      其他方式:

      运行

      jps -lv
      

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

      taskkill /PID <pid>
      

      杀死你的jar进程。

      【讨论】:

      • 您可以在任务管理器中显示 PID。查看 > 选择列 > PID
      • @Lenymm jps 用于 java 进程。它只会向您显示 java 进程。这更方便,因为您不需要像在任务管理器中那样在大量进程列表中搜索您的进程
      【解决方案5】:

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

      【讨论】:

      • 在我看来,这是最好的答案。我讨厌不得不杀死整个java.exe 进程的想法,直到我读到这个答案,我认为这是唯一的方法。我一直想知道为什么没有类似任务管理器的界面来管理正在运行的jar,所以我很高兴听到实际上有一个!感谢您提供这个答案,cproinger。
      【解决方案6】:

      正如大家所说,它要么是 java 要么是 javaw 进程。问题是当您运行多个这样的应用程序时。一种解决方法可能是以不同的方式命名流程,如下所述:

      How can I set the process name for a Java-program?

      【讨论】:

        【解决方案7】:

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

        start.bat

        @ECHO OFF
        call run.bat start
        

        stop.bat:

        @ECHO OFF
        call run.bat stop
        

        run.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
        

        【讨论】:

          【解决方案8】:

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

          【讨论】:

          • Mac OS 怎么样?
          【解决方案9】:

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

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

          问候, 杰尼尔

          【讨论】:

            【解决方案10】:

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

            这里有一个教程:http://tips4java.wordpress.com/2009/05/01/closing-an-application/

            【讨论】:

              【解决方案11】:

              这可能是在没有外部依赖项(jps 或任何东西)的情况下终止进程的最简单方法。

              wmic Path win32_process Where "CommandLine Like '%YourJarName.jar%'" Call Terminate
              

              通过How can we stop a running java process through Windows cmd?

              【讨论】:

                猜你喜欢
                • 2023-03-08
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-11-24
                • 2014-12-31
                • 2021-08-19
                • 2020-01-24
                相关资源
                最近更新 更多