자바 : 콘솔 지우기
Java의 명확한 화면에 어떤 코드가 사용 알려주십시오. 예를 들어 C ++에서
system("CLS");
명확한 화면을 위해 Java에서 어떤 코드가 사용됩니까?
감사합니다!
Windows 용으로 작동하지 않는 코드를 설명 몇 가지 답변이 있습니다.
Runtime.getRuntime().exec("cls");
은이 명령 다음 두 가지 이유로 작동 하지 않습니다 .
명령 잘 알려진 이 윈도우 명령 줄 인터프리터의에 내장되어 있으므로을 통해 호출 할 수있는 명명 된
cls.exe
또는cls.com
표준 윈도우 설치 에는 실행 파일이 없습니다 .Runtime.exec
cls
를 통해 새 프로세스를 시작
Runtime.exec
하면 표준 출력이 시작됩니다. Java 프로세스가 읽을 수있는 파이프로 리디렉션됩니다. 그러나cls
명령 출력 이 리디렉션 될 때 콘솔이
이 문제를 해결하기 위해 명령 줄 인터프리터 ( cmd
) /c cls
를 호출하고 내장 명령을 호출 할 수 있는 명령 ( ) 을 실행하도록 지시해야 합니다. 또한 출력 채널을 Java 프로세스의 출력 채널에 직접 연결해야합니다.이 채널은 Java 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.
}
}
여러 줄의 관리자 끝 ( "\ n")을 인쇄하고 선명한 화면을 시뮬레이션하는 것입니다. 마지막으로 유닉스 쉘에서 대부분 이전 내용을 제거하지 않고 이동하고 아래로 스크롤하면 이전 내용을 볼 수 있습니다.
다음은 샘플 코드입니다.
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가 아닌 적절한 터미널 / 콘솔에서 실행해야합니다.
다음과 같이 클래스에 메소드를 만듭니다. [ @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
이 방법을 사용하지 않는 것이 좋습니다.
다음을 시도하십시오.
System.out.print("\033\143");
이것은 Linux 환경에서 잘 작동합니다.
Runtime.getRuntime (). exec (cls)가 내 XP 노트북에서 작동하지 않습니다. 이-
for(int clear = 0; clear < 1000; clear++)
{
System.out.println("\b") ;
}
이것이 유용하기를 바랍니다.
cls
와 함께 에뮬레이션을 사용할 수 있습니다.for (int i = 0; i < 50; ++i) System.out.println();
Bluej 또는 기타 소프트웨어에서이 작업을 수행하는 경우 작동합니다.
System.out.print('\u000C');
JNI를 사용합니다.
먼저 Visual Studio를 사용하여 시스템 ( "cls")을 호출하는 .dll을 만듭니다. 그 후 JNI를 사용하여 DDL을 사용하십시오.
나는 좋은 기사를 찾았습니다.
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=5170&lngWId=2
참고 URL : https://stackoverflow.com/questions/2979383/java-clear-the-console
'IT' 카테고리의 다른 글
언제 'www'하위 도메인을 가지고 있습니까? (0) | 2020.07.09 |
---|---|
pytest에서 콘솔로 인쇄하는 방법은 무엇입니까? (0) | 2020.07.09 |
Symfony2에서 현재 사용자를 얼마나 많이 얻었습니까? (0) | 2020.07.09 |
멀티 컨트롤러-파이프와 큐 (0) | 2020.07.09 |
하나의 장고 앱에서 새 모델로 모델을 어떻게 관리합니까? (0) | 2020.07.09 |