cmd script - jar application 이 미실행 중일 때만, start 수행하는 스크립트. (@ChatGPT)
@echo off
set JAR_NAME=your_application.jar
REM JPS 명령어로 현재 JAR 파일이 실행 중인지 확인
for /f "tokens=2" %%i in ('jps -l ^| findstr /I "%JAR_NAME%"') do (
set RUNNING=true
)
REM 실행 중이 아니라면 애플리케이션 시작
if not defined RUNNING (
echo Starting Java application...
start "JavaApp" java -jar "%JAR_NAME%"
) else (
echo Java application is already running.
)
@echo off
REM 네트워크 드라이브 매핑 (네트워크 드라이브 경로, 사용자명 및 비밀번호 수정)
net use Z: \\network\path /user:DOMAIN\username password /PERSISTENT:YES
set JAVA_HOME=C:\Programs\jdk\eclipse\jdk-11.0.18.10-hotspot
set PATH=%JAVA_HOME%\bin;%PATH%
REM JAR 파일 이름에서 프로세스 이름 추출 (예: XXX)
set JAR_NAME=logback-config-loader-1.0.0.jar
REM 실행할 JAR 파일 경로 설정
set JAR_PATH=C:\workspace_sts\LogbackConfigLoader\bin\%JAR_NAME%
REM 기존 프로세스가 실행 중인지 확인하고 종료
for /f "tokens=1" %%i in ('jps -l ^| findstr %JAR_NAME%') do (
echo 기존 %JAR_NAME% 프로세스를 종료합니다: PID %%i
taskkill /PID %%i /F
)
REM Java 애플리케이션 실행
echo %JAR_NAME% 애플리케이션을 다시 실행합니다.
REM java -jar -Dapp.profile=dev "%JAR_PATH%"
REM 백그라운드에서 Java 애플리케이션 실행
REM start - background 실행
REM "~" - title
start "%JAR_NAME%" cmd /c "java -jar -Dapp.profile=dev "%JAR_PATH%""
추가적으로, windows 시작 시 cmd 실행방법
Windows에서 로그인하지 않아도 특정 배치 스크립트나 Java 애플리케이션을 자동으로 실행하려면 "작업 스케줄러(Task Scheduler)"를 사용하여 시스템이 시작될 때 해당 스크립트를 실행하도록 설정하는 방법. (@ChatGPT)
작업 스케줄러를 사용한 스크립트 자동 실행 설정 방법
작업 스케줄러 열기
시작 메뉴에서 **작업 스케줄러(Task Scheduler)**를 검색하여 엽니다.
작업 생성하기
작업 스케줄러 라이브러리에서 **작업 만들기(Create Task)**를 선택합니다.
일반 탭 설정
이름(Name): 작업의 이름을 지정합니다. 예를 들어, Run XXX.jar.
설명(Description): 작업에 대한 설명을 추가할 수 있습니다.
보안 옵션(Security Options): 사용자 또는 그룹 변경(Change User or Group)**에서 네트워크 드라이브에 접근 권한이 있는 사용자 계정을 선택합니다. (만약, cmd가 네트워크 경로가 접근이 필요한 경우)
사용자가 로그인했는지 여부에 상관없이 실행(Do not store password. The task will only have access to local computer resources) 옵션을 선택합니다.
트리거(Triggers) 설정
새로 만들기(New) 버튼을 클릭합니다.
**작업 시작(Start the task)**을 **컴퓨터 시작 시(On startup)**로 설정하여 시스템이 켜질 때마다 스크립트가 실행되도록 합니다.
필요한 경우 지연 시간(Delay task) 옵션을 설정하여 컴퓨터 시작 후 몇 초간 대기 후 실행할 수 있습니다.
설정을 마친 후 **확인(OK)**을 클릭합니다.
동작(Actions) 설정
새로 만들기(New) 버튼을 클릭합니다.
**작업(Action)**을 **프로그램 시작(Start a program)**으로 설정합니다.
프로그램/스크립트(Program/Script): 실행할 스크립트 파일(.bat 파일)의 경로를 입력합니다.
설정을 마친 후 **확인(OK)**을 클릭합니다.
조건(Conditions) 설정 (선택사항)
전원(Power) 탭에서 AC 전원 연결된 경우에만 시작(Start only if the computer is on AC power) 옵션을 해제하여, 전원 연결 여부와 상관없이 실행되도록 설정합니다.
확인 후 저장
모든 설정이 완료되면 확인(OK) 버튼을 클릭하여 작업을 저장합니다.
테스트 및 확인
작업을 저장한 후, 시스템을 재시작하여 설정한 배치 스크립트가 정상적으로 실행되는지 확인합니다. 작업 스케줄러에서 작업 실행(Run) 버튼을 통해 수동으로 테스트할 수도 있습니다.
logback-stop.bat
@echo off
set JAVA_HOME=C:\Programs\jdk\eclipse\jdk-11.0.18.10-hotspot
set PATH=%JAVA_HOME%\bin;%PATH%
REM JAR 파일 이름에서 프로세스 이름 추출 (예: XXX)
set JAR_NAME=logback-config-loader.jar
REM 실행할 JAR 파일 경로 설정
set JAR_PATH=C:\workspace_sts\LogbackConfigLoader\bin\%JAR_NAME%
REM 기존 프로세스가 실행 중인지 확인하고 종료
for /f "tokens=1" %%i in ('jps -l ^| findstr %JAR_NAME%') do (
echo Terminates existing %JAR_NAME% process: PID %%i
taskkill /PID %%i /F
)