Java에서 콘솔 지우기

Rupam Yadav 2023년10월12일
  1. ANSI 이스케이프 코드를 사용하여 Java에서 콘솔 지우기
  2. ProcessBuilder를 사용하여 Java에서 콘솔 지우기
Java에서 콘솔 지우기

이 튜토리얼에서는 Java에서 콘솔 화면을 정리하는 데 사용할 수있는 두 가지 방법을 살펴 봅니다. 런타임에 Java clear screen 명령을 실행하는 방법을 배우기 위해 예제를 살펴볼 것입니다.

ANSI 이스케이프 코드를 사용하여 Java에서 콘솔 지우기

ANSI 이스케이프 코드 시퀀스라는 특수 코드를 사용하여 커서 위치를 변경하거나 다른 색상을 표시 할 수 있습니다. 이러한 시퀀스는 바이트와 문자의 조합 인 명령으로 해석 될 수 있습니다.

Java에서 콘솔을 지우려면 이스케이프 코드\033[H\033[2J를 사용합니다. 이 이상한 문자 세트는 콘솔을 청소하는 명령을 나타냅니다. 더 잘 이해하기 위해 분석 할 수 있습니다.

처음 4 개의 문자 ‘\033’은 ESC또는 이스케이프 문자를 의미합니다. 033[H를 결합하면 커서를 지정된 위치로 이동할 수 있습니다. 마지막 문자033[2J는 전체 화면을 정리합니다.

이 이스케이프 코드를 사용하는 아래 예제를 볼 수 있습니다. 우리는 또한System.out.print()를 사용할 때 나머지 바이트를 플러시하는 데 특별히 사용되는System.out.flush()를 사용하여 콘솔 화면에 아무것도 남지 않도록합니다.

예:

public class ClearConsoleScreen {
  public static void main(String[] args) {
    System.out.print("Everything on the console will cleared");
    System.out.print("\033[H\033[2J");
    System.out.flush();
  }
}

ProcessBuilder를 사용하여 Java에서 콘솔 지우기

이 방법에서는 주로 프로세스를 시작하는 데 사용되는 클래스 인ProcessBuilder를 사용합니다. 콘솔을 정리하는 명령으로 프로세스를 빌드 할 수 있습니다.

ProcessBuilder()는 실행할 명령과 인수를받습니다. 이 접근 방식의 문제점은 운영 체제마다 콘솔 화면을 정리하는 명령이 다를 수 있다는 것입니다. 이것이 우리의 예에서 현재 운영 체제를 확인하는 이유입니다.

마지막으로Process 클래스를 사용하여inheritIO로 새 프로세스를 시작하여 표준 입력 및 출력 채널을 Java의 I/O 채널로 설정합니다.

public class ClearScreen {
  public static void main(String[] args) {
    System.out.println("Hello World");
    ClearConsole();
  }

  public static void ClearConsole() {
    try {
      String operatingSystem = System.getProperty("os.name") // Check the current operating system

                               if (operatingSystem.contains("Windows")) {
        ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "cls");
        Process startProcess = pb.inheritIO.start();
        startProcess.waitFor();
      }
      else {
        ProcessBuilder pb = new ProcessBuilder("clear");
        Process startProcess = pb.inheritIO.start();

        startProcess.waitFor();
      }
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java Console