如何停止IntelliJ中的所有进程?

时间:2016-03-25 02:00:04

标签: java intellij-idea ide

我正在使用intelliJ IDEA。

当我运行程序并关闭窗口时,该过程仍然存在。如果我运行了很多程序,我需要多次点击断开连接。

有没有办法停止所有流程?

Eclipse没有这个问题。

PNG1

PNG2

4 个答案:

答案 0 :(得分:5)

IntelliJ 2017.2现在在“停止过程”菜单(顶部栏上的按钮)中有一个“全部停止”按钮,默认快捷键 + F2 在OSX上:

screenshot

对于旧版本:

  1. 单击顶部栏中的“停止”按钮。它将弹出一个列出所有进程的菜单。 (调试窗口侧面的停止按钮是按进程进行的,如屏幕截图所示。)

  2. 将鼠标悬停在第一个进程上,按住 Shift ,然后单击最后一个进程。

  3. Enter

  4. 屏幕截图显示了步骤1和步骤1的结果。 2:

    screenshot

答案 1 :(得分:0)

kill $(ps aux | grep 'java' | awk '{print $2}')

这是我在SO上发现的一个很好的小解决方法,它将使用" java"在名称中。

只需复制并粘贴到终端即可。

答案 2 :(得分:0)

不完美,但您可以按Ctrl + F2(停止进程的快捷键)并按Enter键。它比所有鼠标点击更好,并且可以非常快速地通过运行流程列表。

答案 3 :(得分:0)

您可以创建类似 killJavaProcess 的脚本,并在 Before launch 部分中将其调用为 External tool

Before launch section

例如~/.bin/killonport

#!/bin/zsh

function help() {
  echo "usage: killonport port"
  echo "-f don't ask before killing"
  echo "-h help"
}

function killListenerOnPort() {
  # get script options
  zparseopts -E -D h=HELP f=FORCE

  [[ -n $HELP ]] &&
    help &&
    return

  local PORT
  PORT=$1

  [[ -z "$PORT" ]] &&
    help &&
    return

  local LISTEN
  # find process listening on port with lsof
  LISTEN="$(lsof -nP -iTCP:"$PORT" -sTCP:LISTEN)"

  local PROCESS
  # remove first line of output lsof
  PROCESS="$(echo "$LISTEN" | tail -n +2)"

  local HEAD
  # get first line of output lsof
  HEAD="$(echo "$LISTEN" | head -n 1)"

  [[ -z $PROCESS ]] &&
    echo "Process not found" &&
    return

  local COUNT
  # assure that found only one process else printing founded processes and exit
  COUNT=$(echo "$PROCESS" | wc -l | xargs)
  [[ $COUNT -gt 1 ]] &&
    printf 'Found more then one process: %s\n%s\n%s\n' "$COUNT" "$HEAD" "$PROCESS" &&
    return

  # get name and PID
  local NAME
  NAME=$(echo "$PROCESS" | awk '{print $1}')
  local PID
  PID=$(echo "$PROCESS" | awk '{print $2}')

  # if -f option specified kill silently
  [[ -n "$FORCE" ]] &&
    kill -9 "$PID" &&
    return

  # ask confirmation to kill
  echo "Kill process '$NAME' with PID '$PID'"
  read -qr 'REPL?Continue? (y/n) '
  echo

  # kill if confirmed
  [[ $REPL == 'y' || $REPL == 'Y' ]] &&
    kill -9 "$PID"
}

killListenerOnPort "$@"