This script was developed while building a Firebase app that had a local emulator run. Often, this emulator would freeze up and not close properly, so opening up a Task Manager (I used Process Hacker because it’s easier) and manually close the dangling java.exe process.

This became so common and disruptive that I created a little script to find and kill the process for me.

It’s not that big of a deal, but I gotta add content to this site, so why not…

Raw file available at

param (
    [Int32]$targetPort = "8080",
    [string]$processName = "java"

function Pluralize($value)
    if ($value -eq 1)
        return ""

    return "s"

$connections = Get-NetTCPConnection -state Listen -LocalPort $targetPort -ErrorAction 'SilentlyContinue'

if ($connections.Length -eq 0)
    Write-Host "No ports were open and listening on ${targetPort}"
} else
    $processes = $connections | % { Get-Process -Id $_.OwningProcess } | ? { $_.Name -like $processName }
    $processCount = $processes.Length
    Write-Host "Closing ${processCount} process${processCount | Pluralize} open on ${targetPort}..."

    $processes |
            Stop-Process -Force -PassThru |
            select -Property Name, ProcessName, StartTime, HasExited, ExitTime |