Как очистить консоль в Java?
Я тянул свои волосы за это довольно долгое время. Я исследовал в течение часа о том, как очистить консоль в Java.
Все, что я нашел, было грязным взломом, либо напечатав кучу строк, либо выполнив этот
Runtime.getruntime.exec("cls/clear");
Однако для меня ничего не работает. Разве не существует способа очистки консоли на Java, как в C (clrscr();
). Нет ли какой-либо внешней библиотеки, с помощью которой это может быть достигнуто.
Пожалуйста, дайте мне знать, если кто-либо когда-либо делал это, прежде чем использовать надлежащую функцию, библиотеку и т.д. вместо грязного взлома.
Ответы
Ответ 1
Если ваш терминал поддерживает коды удаления ANSI, это очищает экран и перемещает курсор в первую строку, первый столбец:
System.out.print("\033[H\033[2J");
System.out.flush();
Это работает практически во всех терминалах UNIX и терминальных эмуляторах. Windows cmd.exe
не интерпретирует escape-коды ANSI.
Ответ 2
Попробуйте этот код
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 подключен к консоли, он очистит консоль.
Ответ 3
Runtime.getRuntime().exec("PlatformDepedentCode");
Вам нужно заменить "PlatformDependentCode" на вашу консольную консольную команду.
Метод exec()
выполняет команду, введенную в качестве аргумента, точно так же, как если бы она была введена в консоль.
В Windows вы должны записать его как Runtime.getRuntime().exec("cls");
.
Ответ 4
Используйте следующий код:
System.out.println("\f");
'\f' - это escape-последовательность, которая представляет FormFeed. Это то, что я использовал в своих проектах, чтобы очистить консоль. Это проще, чем другие коды, я думаю.
Ответ 5
Необходимо очистить консоль.
Для последовательных терминалов это обычно выполнялось с помощью так называемых "escape-последовательностей", в которых особенно упрощалась установка vt100 ( и его близким ANSI-кузеном).
Windows традиционно не поддерживала такие последовательности "из коробки", но полагалась на вызовы API для выполнения этих задач. Однако для DOS-версий Windows драйвер ANSI.SYS может быть установлен для обеспечения такой поддержки.
Итак, если вы находитесь под Windows, вам необходимо взаимодействовать с соответствующим API Windows. Я не верю, что стандартная библиотека времени выполнения Java содержит код для этого.
Ответ 6
Вы можете легко реализовать clrscr(), используя простую для печати цикла "\ b".
Ответ 7
Если вы используете окна и заинтересованы в очистке экрана перед запуском программы, вы можете скомпилировать файл, который вызывается из файла .bat.
например:
ЦБС
java ", что когда-либо имя класса компиляции"
Сохранить как "etc".bat, а затем запустить, вызвав его в командной строке или дважды щелкнув файл