콘솔을 클리어하는 방법
자바에서 클리어 스크린에 어떤 코드를 사용하는지 알려주실 수 있나요?
예를 들어 C++의 경우:
system("CLS");
자바에서는 어떤 코드를 사용하여 화면을 클리어합니까?
여기에서는, Windows 의 동작하지 않는 코드를 나타내는 몇개의 회답이 있기 때문에, 다음과 같이 설명합니다.
Runtime.getRuntime().exec("cls");
이 명령어는 다음 두 가지 이유로 기능하지 않습니다.
named there there there there named there named named named named named named named라는 이름의 실행 .
cls.exe
★★★★★★★★★★★★★★★★★」cls.com
를 개입시켜 할 수 .Runtime.exec
명령어 well-knowncls
windows Windows 명명인인 。를 통해 할 때
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]를 선택하여 활성화합니다.
이러한 설정 후 다음과 같은 제어 문자를 사용하여 콘솔을 관리할 수 있습니다.
\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
'programing' 카테고리의 다른 글
vue 및 웹 팩과 함께 keycloak-js를 설치하려고 할 때 수집되지 않은 유형 오류: __WEBPACK_IPORTED_MODULE_3_keycloak_js_가 함수가 아닙니다. (0) | 2022.07.16 |
---|---|
왜죠왜죠tag loadstart event not trigger ? 대체 방법이 있습니까?tag loadstart event not trigger ? 대체 방법이 있습니까? (0) | 2022.07.16 |
루트 권한 삭제 (0) | 2022.07.16 |
Vuejs에서 v-model 입력 값을 변경할 때 데이터가 동적으로 업데이트되지 않음 (0) | 2022.07.16 |
Vue.js - 요소 UI - 변경 중단 드롭다운 개체 및 값 키 선택 (0) | 2022.07.16 |