- How to Clear Console in Java?
- 7 Answers 7
- Очистка консоли
- Clear java console windows
- Ответы (11)
- Как очистить консоль?
- Базовые технологии Java /
- Файлы и потоки ввода/вывода
- Работа с Java в командной строке
- От простого к .
- Один файл
- Отделяем бинарные файлы от исходников
- Используем пакеты
- Если в программе несколько файлов
- Если удивляет результат
- Хорошо бы протестировать
- Создадим библиотеку
- Надо узнать, что у библиотеки внутри
- Лучше снабдить библиотеку документацией
- Можно подписать jar-архив
- Использование библиотеки
- Собираем программу
- Первый способ
- Второй способ
- Третий способ
- Запуск исполняемого jar-файла
- Как быть с приложениями JavaEE
How to Clear Console in Java?
I have been pulling my hair for this since quite long time. I have researched for an hour on how to clear a console in Java.
All I found was dirty hacking either by printing a bunch of lines or executing this
However, nothing seems to be working for me. Isn’t there really any a way of clearing the console in Java like in C ( clrscr(); ). Isn’t there any external library by which this can be achieved.
Please let me know if anyone has ever done this before using a proper function, library etc. instead of dirty hacking.
7 Answers 7
If your terminal supports ANSI escape codes, this clears the screen and moves the cursor to the first row, first column:
This works on almost all UNIX terminals and terminal emulators. The Windows cmd.exe does not interprete ANSI escape codes.
Now when the Java process is connected to a console, it will clear the console.
You need to replace «PlatformDependentCode» with your platform’s clear console command.
The exec() method executes the command you entered as the argument, just as if it is entered in the console.
In Windows you would write it as Runtime.getRuntime().exec(«cls»); .
Use the following code:
‘\f‘ is an escape sequence which represents FormFeed. This is what I have used in my projects to clear the console. This is simpler than the other codes, I guess.
You need to instruct the console to clear.
For serial terminals this was typically done through so called «escape sequences», where notably the vt100 set has become very commonly supported (and its close ANSI-cousin).
Windows has traditionally not supported such sequences «out-of-the-box» but relied on API-calls to do these things. For DOS-based versions of Windows, however, the ANSI.SYS driver could be installed to provide such support.
So if you are under Windows, you need to interact with the appropriate Windows API. I do not believe the standard Java runtime library contains code to do so.
You can easily implement clrscr() using simple for loop printing «\b».
If you are using windows and are interested in clearing the screen before running the program, you can compile the file call it from a .bat file. for example:
java «what ever the name of the compiles class is»
Save as «etc».bat and then running by calling it in the command prompt or double clicking the file
Очистка консоли
Очистка консоли в Java
Добрый день. На С++ есть функция system(«cls») которая чистит консольку. Есть ли что то подобное.
Очистка консоли
Есть ли в java команда, написав которую, все , что было написано до этой функции в консоле.
Циклы: вывести в первую строчку консоли строку из 10 заданных букв и во вторую строчку консоли из 5 таких букв
Задана буква. Вывести в первую строчку консоли строку из 10 таких букв и во вторую строчку консоли.
Ребят, нашел!
В system.out.println вводим код символа backspace.
Например
System.out.println(«Да было слово!»+(char)8); // Да было слово
Ну а чтобы удалить все строки, поставить цикл на 1000 таких (char)8
Добавлено через 7 минут
Сорь, ребят, это работает только в одном System.out.println(): если сообщение уже вывелось, то символ backspace из другого systema уже не будет удалять символы
wow, оказалось, что я у меня тут аккаунт есть
по теме, может кому пригодится ещё.
Тематические курсы и обучение профессиям онлайн Java-разработчик (Skillbox) Java-разработчик с нуля (Нетология) Автоматизированное тестирование на Java (Skillbox) |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Очистка файла
Работаю с помощью BufferedWriter: fileWriter = new PrintWriter(new BufferedWriter(new.
Очистка памяти
Подскажите пожалуйста, при использовании кода ниже будет утечка памяти JDK 7? Интересует именно.
Очистка файла
Здравствуйте! Я читаю и файла таким образом: while (scn.hasNext()) <.
Очистка поля
Почему не срабатывает очистка по нажатию «ESC»? В чем моя ошибка? Вот часть очистки: class.
Clear java console windows
499828 просмотра
11 ответа
Любое тело, пожалуйста, скажите мне, какой код используется для очистки экрана в Java? Например в C ++
Какой код используется в Java для очистки экрана?
Ответы (11)
97 плюса
Поскольку здесь есть несколько ответов, показывающих нерабочий код для Windows, вот пояснение:
Эта команда не работает по двум причинам:
Не существует исполняемого файла с именем cls.exe или cls.com в стандартной установке Windows, который можно было бы вызвать с помощью Runtime.exec , поскольку известная команда cls встроена в интерпретатор командной строки Windows.
При запуске нового процесса через Runtime.exec стандартный вывод перенаправляется в канал, который может прочитать инициирующий процесс Java. Но когда выходные данные cls команды перенаправляются, консоль не очищается.
Чтобы решить эту проблему, мы должны вызвать интерпретатор командной строки ( cmd ) и сказать ему выполнить команду ( /c cls ), которая позволяет вызывать встроенные команды. Далее мы должны напрямую подключить его выходной канал к выходному каналу процесса Java, который работает, начиная с Java 7, используя inheritIO() :
Теперь, когда процесс Java подключен к консоли, то есть запущен из командной строки без перенаправления вывода, он очистит консоль.
Автор: Holger Размещён: 27.10.2015 10:40
68 плюса
Вы можете использовать следующий код для очистки консоли командной строки:
Автор: satish Размещён: 30.08.2015 11:19
15 плюса
Вот как бы я справился с этим. Этот метод будет работать для случая ОС Windows и случая ОС Linux / Unix (что означает, что он также работает для Mac OS X).
13 плюса
Если вы хотите более системный независимый способ сделать это, вы можете использовать JLine библиотеку и ConsoleReader.clearScreen () . Вероятно, стоит также осторожно проверить, поддерживаются ли JLine и ANSI в текущей среде.
Что-то вроде следующего кода работает для меня:
При выполнении этого, если вы введете «очистить» в командной строке, он очистит экран. Убедитесь, что вы запускаете его с правильного терминала / консоли, а не в Eclipse.
Автор: prunge Размещён: 19.01.2013 01:50
12 плюса
Для этого можно напечатать несколько концов строк («\ n») и смоделировать очистку экрана. В конце ясно, что самое большее в оболочке Unix, не удаляет предыдущий контент, только перемещает его вверх и, если вы сделаете прокрутку вниз, можно увидеть предыдущий контент.
Вот пример кода:
11 плюса
Создание метода в классе , как это: [а @Holger сказал здесь .]
Это работает для Windows, по крайней мере, я не проверял для Linux до сих пор. Если кто-нибудь проверит его на Linux, пожалуйста, дайте мне знать, работает ли он (или нет).
Как альтернативный способ написать этот код в clrscr() :
Я не буду рекомендовать вам использовать этот метод.
7 плюса
Это будет хорошо работать в среде Linux
5 плюса
Runtime.getRuntime (). Exec (cls) НЕ работал на моем ноутбуке с XP. Это сделал —
Надеюсь, это полезно
2 плюса
Вы можете использовать эмуляцию cls с for (int i = 0; i
Автор: Epic Размещён: 10.01.2015 05:09
2 плюса
Это будет работать, если вы делаете это в Bluej или любом другом подобном программном обеспечении.
-3 плюса
Вам нужно использовать JNI.
Прежде всего используйте создать .dll с помощью visual studio, которая вызывает систему («cls»). После этого используйте JNI, чтобы использовать этот DDL.
Как очистить консоль?
Базовые технологии Java /
Файлы и потоки ввода/вывода
Так а возможно ли очистить не пустую?)
Так а возможно ли очистить не пустую?)
Так а возможно ли очистить не пустую?)
Я имею в виду следуещее:
Элементарно Ватсон (с)
Есть такая штука — ANSI-коды управления консолью. Сейчас это, наверное, никто и не помнит и не учит.
Очистит экран и поменяет цвет текста на зеленый. Будет работать и через класс java.io.Console.
В винде не проверял, могу предположить следующее: в XP. 2000, 2003 должно работать. в 95-й и 98-й — если подключен драйвер ANSI. Как его прописывать в autoexec.bat (или может быть в config.sys) — не помню. Но в сети есть, при желании найти можно.
Шкипер , а вы проверяли? В винде ANSI-коды не работают. А все потому что Unix вырос из многотерминальных систем разделения времени, а Windows — из простейшей ОС для ПК.
Runtime.getRuntime().exec(«cmd /c cls»); также не работает по непонятной причине
как уже советовали в другой теме, решение только одно — JNI
(сделать свою консоль не считается)
Угу. Когда-то, когда у меня была 95-я винда — настраивал и проверял. Позднее мне это было просто не нужно.
а) таки раборают, но я ж и говорю что возможно потребуется что-то подкрутить, где-то напильником
б) многотерминальность тут совершенно не при чем
в) не обижайте MS-DOS 😉
Искать информацию мне было лень, так как я не вижу большого смысла в этом.
Но вот например что знает великий гугл
Colorizing console Ruby-script output — 2007-й год. Кстати написано что семейство NT с ANSI-кодами «из коробки» не работает. И дано решение.
Если запустить ява-программу самостоятельно то, скорей всего, этот трюк не сработает.
Работа с Java в командной строке
От простого к .
Каждая программа обычно содержится в отдельном каталоге. Я придерживаюсь правила создавать в этом каталоге по крайней мере две папки: src и bin. В первой содержатся исходные коды, во второй — результат компиляции. В данных папках будет структура каталогов, зависящая от пакетов.
Один файл
Можно сделать и без лишних папок.
Берем сам файл HelloWorld.java.
Переходим в каталог, где лежит данный файл, и выполняем команды.
В данной папке появится файл HelloWorld.class. Значит программа скомпилирована. Чтобы запустить
Отделяем бинарные файлы от исходников
Теперь сделаем тоже самое, но с каталогами. Создадим каталог HelloWorld и в нем две папки src и bin.
Компилируем
Здесь мы указали, что бинарные файлы будут сохраняться в отдельную папку bin и не путаться с исходниками.
Используем пакеты
А то, вдруг, программа перестанет быть просто HelloWorld-ом. Пакетам лучше давать понятное и уникальное имя. Это позволит добавить данную программу в другой проект без конфликта имен. Прочитав некоторые статьи, можно подумать, что для имени пакета обязательно нужен домен. Это не так. Домены — это удобный способ добиться уникальности. Если своего домена нет, воспользуйтесь аккаунтом на сайте (например, ru.habrahabr.mylogin). Он будет уникальным. Учтите, что имена пакетов должны быть в нижнем регистре. И избегайте использования спецсимволов. Проблемы возникают из-за разных платформ и файловых систем.
Поместим наш класс в пакет с именем com.qwertovsky.helloworld. Для этого добавим в начало файла строчку
В каталоге src создадим дополнительные каталоги, чтобы путь к файлу выглядел так: src/com/qwertovsky/helloworld/HelloWorld.java.
Компилируем
В каталоге bin автоматически создастся структура каталогов как и в src.
Если в программе несколько файлов
HelloWorld.java
Calculator.java
Adder.java
Ошибка возникла из-за того, что для компиляции нужны файлы с исходными кодами классов, которые используются (класс Calculator). Надо указать компилятору каталог с файлами с помощью ключа -sourcepath.
Компилируем
Если удивляет результат
Есть возможность запустить отладчик. Для этого существует jdb.
Сначала компилируем с ключом -g, чтобы у отладчика была информация.
Отладчик запускает свой внутренний терминал для ввода команд. Справку по последним можно вывести с помощью команды help.
Указываем точку прерывания на 9 строке в классе Calculator
Запускаем на выполнение.
Чтобы соориентироваться можно вывести кусок исходного кода, где в данный момент находится курссор.
Узнаем, что из себя представляет переменная а.
Выполним код в текущей строке и увидим, что sum стала равняться 2.
Поднимемся из класса Adder в вызвавший его класс Calculator.
Удаляем точку прерывания
Можно избежать захода в методы, используя команду next.
Проверяем значение выражения и завершаем выполнение.
Хорошо бы протестировать
Запускаем. В качестве разделителя нескольких путей в classpath в Windows используется ‘;’, в Linux — ‘:’. В консоли Cygwin не работают оба разделителя. Возможно, должен работать ‘;’, но он воспринимается как разделитель команд.
Создадим библиотеку
Класс Calculator оказался полезным и может быть использован во многих проектах. Перенесем всё, что касается класса Calculator в отдельный проект.
Измените также назавания пакетов в исходных текстах. В HelloWorld.java нужно будет добавить строку
Делаем архив jar
С помощью ключа -C мы запустили программу в каталоге bin.
Надо узнать, что у библиотеки внутри
Можно распаковать архив zip-распаковщиком и посмотреть, какие классы есть в библиотеке.
Информацию о любом классе можно получить с помощью дизассемблера javap.
Из результата видно, что класс содержит кроме пустого конструктора, ещё один метод sum, внутри которого в цикле вызывается метод add класса Adder. По завершении метода sum, вызывается Adder.getSum().
Без ключа -c программа выдаст только список переменных и методов (если использовать -private, то всех).
Лучше снабдить библиотеку документацией
Изменим для этого класс калькулятора.
Документацию можно создать следующей командой. При ошибке программа выдаст список возможных опций.
В результате получиться следующее
Можно подписать jar-архив
Если требуется подписать свою библиотеку цифровой подписью, на помощь придут keytool и jarsigner.
Генерируем подпись.
Генерируем Certificate Signing Request (CSR)
Содержимое полученного файла отправляем в центр сертификации. От центра сертификации получаем сертификат. Сохраняем его в файле (например, qwertokey.cer) и импортируем в хранилище
Файл qwertokey.cer отправляем всем, кто хочет проверить архив. Проверяется он так
Использование библиотеки
Есть программа HelloWorld, которая использует библиотечный класс Calculator. Чтобы скомпилировать и запустить программу, нужно присоединить библиотеку.
Компилируем
Собираем программу
Это можно сделать по-разному.
Первый способ
Здесь есть тонкости.
В строке
не должно быть пробелов в конце.
Вторая тонкость описана в [3]: в этой же строке должен стоять перенос на следующую строку. Это если манифест помещается в архив сторонним архиватором.
Программа jar не включит в манифест последнюю строку из манифеста, если в конце не стоит перенос строки.
Ещё момент: в манифесте не должно быть пустых строк между строками. Будет выдана ошибка «java.io.IOException: invalid manifest format».
При использовании команды echo надо следить только за пробелом в конце строки с main-class.
Второй способ
В данном способе избегаем ошибки с пробелом в main-class.
Третий способ
Включили код нужной библиотеки в исполняемый файл.
Запуск исполняемого jar-файла
Файл calculator.jar исполняемым не является. А вот helloworld.jar можно запустить.
Если архив был создан первыми двумя способами, то рядом с ним в одном каталоге должна находится папка lib с файлом calculator.jar. Такие ограничения из-за того, что в манифесте в class-path указан путь относительно исполняемого файла.
При использовании третьего способа нужные библиотеки включаются в исполняемый файл. Держать рядом нужные библиотеки не требуется. Запускается аналогично.
Как быть с приложениями JavaEE
Аналогично. Только библиотеки для компиляции нужно брать у сервера приложений, который используется. Если я использую JBoss, то для компиляции сервлета мне нужно будет выполнить примерно следующее
Структура архива JavaEE-приложения должна соответствовать определенному формату. Например
Способы запуска приложения на самом сервере с помощью командной строки для каждого сервера различны.
Надеюсь, данная статья станет для кого-нибудь шпаргалкой для работы с Java в командной строке. Данные навыки помогут понять содержание и смысл Ant-скриптов и ответить на собеседовании на более каверзные вопросы, чем «Какая IDE Вам больше нравится?».