programing

콘솔을 클리어하는 방법

shortcode 2022. 7. 16. 14:12
반응형

콘솔을 클리어하는 방법

자바에서 클리어 스크린에 어떤 코드를 사용하는지 알려주실 수 있나요?

예를 들어 C++의 경우:

system("CLS");

자바에서는 어떤 코드를 사용하여 화면을 클리어합니까?

여기에서는, Windows 의 동작하지 않는 코드를 나타내는 몇개의 회답이 있기 때문에, 다음과 같이 설명합니다.

Runtime.getRuntime().exec("cls");

이 명령어는 다음 두 가지 이유로 기능하지 않습니다.

  1. named there there there there named there named named named named named named named라는 이름의 실행 .cls.exe ★★★★★★★★★★★★★★★★★」cls.com 를 개입시켜 할 수 .Runtime.exec 명령어 well-known clswindows Windows 명명인인 。

  2. 를 통해 할 때Runtime.exec표준 출력은 개시하는 Java 프로세스가 읽을 수 있는 파이프로 리다이렉트 됩니다., <고객명>님의 cls명령어는 리다이렉트되지만 콘솔은 클리어되지 않습니다.

인터프리터)를 .cmd(명령어 실행)을/c cls를 사용하면, 커맨드를 할 수 를 사용하면 빌트인명령어를 호출할 수 있습니다. 7에서 프로세스의 7에서.inheritIO():

import java.io.IOException;

public class CLS {
    public static void main(String... arg) throws IOException, InterruptedException {
        new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
    }
}

이제 Java 프로세스가 콘솔에 연결되면, 즉 출력 리다이렉트 없이 명령줄에서 시작되면 콘솔이 지워집니다.

다음 코드를 사용하여 명령줄 콘솔을 지울 수 있습니다.

public static void clearScreen() {  
    System.out.print("\033[H\033[2J");  
    System.out.flush();  
}  

자세한 것은, http://techno-terminal.blogspot.in/2014/12/clear-command-line-console-and-bold.html 를 참조해 주세요.

난 이렇게 처리할 거야이 방법은 Windows OS 케이스 및 Linux/Unix OS 케이스에 적용됩니다(즉, Mac OS X에도 해당).

public final static void clearConsole()
{
    try
    {
        final String os = System.getProperty("os.name");

        if (os.contains("Windows"))
        {
            Runtime.getRuntime().exec("cls");
        }
        else
        {
            Runtime.getRuntime().exec("clear");
        }
    }
    catch (final Exception e)
    {
        //  Handle any exceptions.
    }
}

IDE 내에서 실행 중인 경우 일반적으로 이 방법은 콘솔을 클리어하지 않습니다.

[@Holger가 여기서 말한 대로]와 같은 메서드를 클래스에 만듭니다.

public static void clrscr(){
    //Clears Screen in java
    try {
        if (System.getProperty("os.name").contains("Windows"))
            new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
        else
            Runtime.getRuntime().exec("clear");
    } catch (IOException | InterruptedException ex) {}
}

적어도 Windows 에서는 동작합니다.Linux는 아직 확인하지 않았습니다.Linux를 체크하는 사람이 있으면 동작 여부를 알려주세요.

으로는 이 , 쓰다, 쓰다.clrscr():

for(int i = 0; i < 80*300; i++) // Default Height of cmd is 300 and Default width is 80
    System.out.print("\b"); // Prints a backspace

이 방법을 사용하는 것은 추천하지 않습니다.

이를 실현하는 방법은 여러 줄의 끝("\n")을 인쇄하여 클리어 화면을 시뮬레이트하는 것입니다.마지막 클리어에서는 unix 쉘에서는 이전 콘텐츠를 삭제하지 않고 위쪽으로만 이동합니다.아래로 스크롤하면 이전 콘텐츠를 볼 수 있습니다.

다음은 샘플 코드입니다.

for (int i = 0; i < 50; ++i) System.out.println();

시스템에 의존하지 않는 방법을 원하는 경우 JLine 라이브러리와 ConsoleReader.clearScreen()을 사용할 수 있습니다.현재 환경에서 JLine과 ANSI가 지원되는지 여부를 신중하게 확인하는 것도 좋은 방법입니다.

다음과 같은 코드가 나에게 효과가 있었다.

import jline.console.ConsoleReader;

public class JLineTest
{
    public static void main(String... args)
    throws Exception
    {
        ConsoleReader r = new ConsoleReader();

        while (true)
        {
            r.println("Good morning");
            r.flush();

            String input = r.readLine("prompt>");

            if ("clear".equals(input))
                r.clearScreen();
            else if ("exit".equals(input))
                return;
            else
                System.out.println("You typed '" + input + "'.");

        }
    }
}

이 작업을 실행할 때 프롬프트에 'clear'를 입력하면 화면이 지워집니다.Eclipse가 아닌 적절한 터미널/콘솔에서 실행해야 합니다.

다음을 시도합니다.

System.out.print("\033\143");

Linux 환경에서 정상적으로 동작합니다.

Runtime.getRuntime().exec(cls)이 XP 노트북에서 작동하지 않았습니다.이것은 -

for(int clear = 0; clear < 1000; clear++)
  {
     System.out.println("\b") ;
  }

이것이 도움이 되기를 바랍니다.

모든 답변을 조합함으로써 이 방법은 모든 환경에서 사용할 수 있습니다.

public static void clearConsole() {
    try {
        if (System.getProperty("os.name").contains("Windows")) {
            new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
        }
        else {
            System.out.print("\033\143");
        }
    } catch (IOException | InterruptedException ex) {}
}

이 기능은 Bluej 또는 기타 유사한 소프트웨어에서 실행할 경우 작동합니다.

System.out.print('\u000C');

이것을 시험해 보세요:NetBeans 통합 콘솔에서는 동작하지 않고 콘솔에서만 동작합니다.

public static void cls(){
    try {

     if (System.getProperty("os.name").contains("Windows"))
         new ProcessBuilder("cmd", "/c", 
                  "cls").inheritIO().start().waitFor();
     else
         Runtime.getRuntime().exec("clear");
    } catch (IOException | InterruptedException ex) {}
}

에뮬레이션을 사용할 수 있습니다.cls와 함께for (int i = 0; i < 50; ++i) System.out.println();

제어문자는 백슬래시(\b) 및 캐리지 리턴(\r)으로 사용해야 합니다.기본적으로는 비활성화되어 있지만 콘솔 보기에서 이러한 컨트롤을 해석할 수 있습니다.

Windows > [ Preferences ] run [ Run / Debug ]> [ Console ]를 선택하고 [Interpreter ASCII control characteres]를 선택하여 활성화합니다.

Eclipse의 콘솔 환경설정

이러한 설정 후 다음과 같은 제어 문자를 사용하여 콘솔을 관리할 수 있습니다.

\t - 탭

\b - 백스페이스(텍스트에서 한 단계 뒤로 이동 또는 단일 문자 삭제).

\n - 새로운 행.

\r - 캐리지 리턴.()

\f - 폼 피드.

이클립스 콘솔 클리어 애니메이션

상세한 것에 대하여는, https://www.eclipse.org/eclipse/news/4.14/platform.php 를 참조해 주세요.

JNI를 사용해야 합니다.

우선 비주얼 스튜디오를 사용하여 시스템("cls")을 호출하는 .dll을 만듭니다.그 후 JNI를 사용하여 이 DDL을 사용합니다.

좋은 기사를 찾았습니다.

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=5170&lngWId=2

언급URL : https://stackoverflow.com/questions/2979383/how-to-clear-the-console

반응형