Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 현금흐름표
- Java
- 잉여현금흐름
- 알고리즘
- 다형성
- 주린이
- 오버라이딩
- 미국주식
- 배당성장
- 금리인하
- 제태크
- 주식
- 기업분석
- XLF
- 프로그래머스
- S&P500
- 백준
- object
- 무디스
- 객체지향
- StringBuffer
- mco
- 접근제어자
- 인플레이션
- 그리디 알고리즘
- 자바
- 금리인상
- javascript
- etf
- FCF
Archives
- Today
- Total
오늘의하루
[Java] 점심시간 자동 화면 잠금 본문
- 만든 이유
시간을 안보고 일하다 보면 점심시간인지 모르는 경우가 있기 때문이다.
- 이걸 모든 직원컴퓨터에서 실행하여 점심시간이 되면 다들 빨리 일어났으면 좋겠다.
- 최종적으로 만들고자 하는 결과물
컴퓨터 부팅시 자동으로 실행되게 하여 점심시간에 화면이 잠겼으면 좋겠다.
- 아직 부팅시 자동 실행은 만들지 못하였다. [2023-12-26]
소스코드
package com.lunch.breakPoint;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Timer;
import java.util.TimerTask;
/***
* 점시시간 11:45에 화면 잠금을 하는 프로그램
* @author user
*
*/
public class LunchBreakPoint {
public static void main(String[] args) {
Timer timer = new Timer();
RunClass runClass = new RunClass(timer);
timer.schedule(runClass, 0, 1000 * 60);
}
}
class RunClass extends TimerTask {
private Timer timer;
RunClass(Timer timer){
this.timer = timer;
}
@Override
public void run() {
exec();
}
public void exec() {
try {
LocalDateTime now = LocalDateTime.now();
// if(now.getHour() == 13 && now.getMinute() == 6){
// cancel();
// }
if(now.getHour() == 13 && now.getMinute() == 17){
/*Process process = */Runtime.getRuntime().exec("rundll32.exe user32.dll,LockWorkStation");
// process.waitFor();
timer.cancel(); // 타이머 종료
System.exit(0); // 시스템 종료
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
rundll32.exe
Windows 운영체제에서 DLL(Dynamic Link Library)파일을 실행하는데 사용되는 유틸리티이다.
user32.dll
Windows 사용자 인터페이스 및 그래픽 관련 함수를 제공하는 DLL 파일이다.
LockWorkStation
작업세션을 잠그는데 사용되는 명령어이다.
소스코드 작성 이후 작업
1. mvn clean install 한 후 생성된 jar파일을 powerShell을 이용하여 백그라운드 실행한다.
Start-Process -FilePath "java" -ArgumentList "-jar", "경로/JARNAME.jar" -WindowStyle Hidden
2. 실행한 jar파일이 잘 작동하는지 확인
Get-Process -Name "java"
# 없는 경우 오류가 나기 때문에 아래와 같이 만들어 줄 수 있다.
try{
$searchProcess = Get-Process -Name "java"
$searchProcess
} catch {
Write-OutPut "Not Found Java File"
}
3. 해당 jar파일을 종료하고 싶은 경우
kill -id id값
4. bat 파일을 만들고 싶은 경우
프로젝트 루트 디렉토리에 Name.bat 파일을 만들어주고 아래와 같은 명령어를 넣어주면 된다.
@echo off
start javaw -jar 경로\lunchBreak-0.0.1-SNAPSHOT.jar
javaw는 콘솔 창 없이 Java 애플리케이션을 실행하는 명령어이다.
이렇게 하면 PowerShell에서 Get-Process -Name "java"로는 해당 프로세스를 찾을 수 없다.
찾고 싶다면 tasklist 명령어를 통해 javaw.exe가 있는지 확인해야한다.
'Spring > mini Project' 카테고리의 다른 글
Step1-2. EC2 프리티어 Jenkins 서버 터지는 현상 해결 (0) | 2024.02.07 |
---|---|
Step1-1. Jenkins에서 GitHub Webhook 사용 및 실행 (0) | 2024.02.06 |
Step1. Jenkins 설치 후 프로젝트 Build 및 Start (1) | 2024.02.06 |
[Spring boot & React] mini project 시작 (2) | 2023.11.28 |
나만의 API 서버 만들기 - 1 (0) | 2023.11.22 |
Comments