开发者-导航 猿导航

Windows 系统 Java 进程查看与项目启停脚本实战

发布时间:

目录

查找已经在运行 java 项目 #

一、jps #

命令:

jps -l

执行结果:

14464 sun.tools.jps.Jps
21952 com.intellij.idea.Main
6232 org.jetbrains.idea.maven.server.RemoteMavenServer36
22396 xxxxx-admin-api.jar

二、tasklist #

tasklist |findstr "java"

执行结果:

java.exe                      6232 Console                    1    238,964 K
javaw.exe                    22396 Console                    1    643,396 K

三、wmic #

wmic process where "name like '%java%'" get ProcessId,CommandLine

执行结果:

rocessId
D:\dev\Java\java64\bin\java.exe ...省略 org.jetbrains.idea.maven.server.RemoteMavenServer36  6232
javaw  -Xms256m -Xmx512m -Dloader.path=../../release/api/libs -jar "xxxxx-admin-api.jar" --spring.profiles.active=dev 22396

查找项目启动时的参数 #

ProcessId 进程 ID

wmic process where "ProcessId=22396" get CommandLine

执行结果:

CommandLine
javaw  -Xms256m -Xmx512m -Dloader.path=../../release/api/libs -jar "xxxx-admin-api.jar" --spring.profiles.active=dev

启动批处理脚本 #

javaw: 启动项目是可以隐藏 cmd 控制台窗口,类似 Linux nohup,后台运行。

@echo off
chcp 65001
title Java项目启动

:: ====================== 配置区 ======================
set "JAR_PATH=xxxx-admin-api.jar"
set "JAVA_OPTS=-Xms256m -Xmx512m"
set "JAVA_ACTIVE=dev"
set "JAVA_LIBS=../../release/api/libs"
set "LOG_PATH=app.log"
:: ====================================================

echo 正在启动 Java 项目...
echo JAR路径: %JAR_PATH%

if not exist "%JAR_PATH%" (
    echo 错误:未找到 jar 文件!
    pause
    exit /b 1
)

start "JavaApp" javaw %JAVA_OPTS% -Dloader.path=%JAVA_LIBS% -jar "%JAR_PATH%" --spring.profiles.active="%JAVA_ACTIVE%" >> "%LOG_PATH%" 2>&1

echo 启动成功!
pause

停止批处理脚本 #

@echo off
chcp 65001
title Java 停止

:: ====================== 配置区 ======================
set "JAR_PATH=xxxx-admin-api.jar"
:: ====================================================

echo 正在停止进程:%JAR_NAME%

for /f "tokens=1,*" %%i in ('jps -l') do (
    echo %%j | find /I "%JAR_NAME%" >nul
    if not errorlevel 1 (
        echo Killing PID %%i
        taskkill /PID %%i /F >nul 2>&1
    )
)

echo 停止成功!
pause