IDEA清空控制台以及Java中运行cmd命令实现清屏操作
IDEA中清空控制台方法
在网上有看到各种的实现方法,比如:
Runtime.getRuntime().exec("cls");
或者:
public static void clear() {
System.out.print("\033[H\033[2J");
System.out.flush();
}
还有:
import java.io.IOException;
class Clear {
public static void main(String... arg) throws IOException, InterruptedException {
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
}
}
但是好像都不管用,所以这里给大家提供了两种正确的解决方法,话不多说,直接安排!
解决办法:
一:打印换行
这里有一个很笨的方法就是通过打印多个换行来 “清空” 之前的内容,但是这种方法会导致你往上翻依旧能看到之前的内容,而且换行之后显示的界面不会出现在控制台顶部看起来也很别扭,所以这种方法不建议使用,但我还是在这提一下,仅供参考。
System.out.println(new String(new char[50]).replace("\0", "\r\n"))
二:通过按键事件控制键盘执行清空控制台动作
按键事件可以利用键盘来控制和执行一些动作,或者从键盘上获取输入,只要按下,释放一个键或者在一个组件上敲击,就会触发按键事件。
KeyEvent
对象描述事件的特性(按下,放开,或者敲击一个键)和对应的值。java 提供KeyListener
接口处理按键事件。当按下一个键时会调用
KeyPressed
处理器,当松开一个键时会调用KeyReleased
处理器,当输入一个统一编码时会调用KeyTyped
处理器。如果这个键不是统一码(如功能键,修改键,动作键和控制键)
每个按键事件有一个相关的按键字符和按键代码,分别由KeyEvent中
的getKeyChar()
和getKeyCode()
方法返回在 IEAD 中可以通过在控制台右键点击全部清除来实现清空终端,如图:
所以我们可以通过设置快捷键然后调用按键事件同样可以实现清空控制台的操作,设置快捷键的步骤如下:
首先进入 IDEA 的设置界面,找到快捷键选项在右侧搜索框中搜索 clear 找到下边的全部清除选中右键点击
Add KeyBoard Shortcut (添加快捷键)
,输入自己想要设置的快捷键,最后点击应用,确认即可。设置好快捷键后我们就可以创建一个方法,导入对应的类即可
代码如下:
import java.awt.*;
import java.awt.event.KeyEvent;
/*********************************************************************/
public static void clearConsole() throws AWTException {
Robot r = new Robot();
r.keyPress(KeyEvent.VK_CONTROL); // 按下Ctrl键
r.keyPress(KeyEvent.VK_R); // 按下R键
r.keyRelease(KeyEvent.VK_R); // 释放R键
r.keyRelease(KeyEvent.VK_CONTROL); // 释放Ctrl键
r.delay(100);
}
最后在对应的位置调用该方法就可以实现清空控制台的操作了。
getKeyChar(): char 返回这个事件中和键相关的字符
getKeyCode(): int 返回这个事件中和键相关的整数键
keyPressed(e: KeyEvent) 在源组件上按下一个键后被调用
KeyReleased(e: KeyEvent) 在源组件上释放一个键后被调用
KeyTyped(e: KeyEvent) 在源组件上按下一个键然后释放该键后被调用
getKeyCode() 返回定义在表中的值
getKeyChar() 返回输入的字符
三:附:Java 按键事件 KeyEvent
按键常量 | 按键 | 按键常量 | 按键 |
---|---|---|---|
VK_ENTER | \n | VK_TAB | \t (Tab键) |
VK_BACK_SPACE | \b | VK_ENTER | \r (回车键) |
VK_CONTROL | Ctrl键 | VK_ALT | Alt键 |
VK_ESCAPE | Esc键 | VK_BACK_SPACE | 退格键 |
VK_SHIFT | Shift 键 | VK_CONTROL | 控制键 |
VK_HOME | Home键 | VK_PAUSE | Pause键 |
VK_END | End键 | VK_PGUP | page up键 |
VK_PGDN | page down键 | VK_CAPS_LOCK | 大小写锁定键 |
VK_NUM_LOCK | 小键盘锁定键 | VK_UNDEFINED | 未知键 |
VK_UP | 上箭头 | VK_DOWN | 下箭头 |
VK_LEFT | 左箭头 | VK_RIGHT | 右箭头 |
VK_F1~VK_F12 | F1 ~ F12 | VK_A ~ VK_Z | A ~ Z |
VK_0~VK_9 | 0 ~ 9 |
当然想要查看更多的 KeyEvent 可以在 IDEA 中点击 KeyEvent
按 F4
转到源码进行查看。
四:使用鼠标箭头触发按钮实现清空控制台操作
在我们的控制台右侧工具栏中可以看到一个 “ 小垃圾桶的图标 ” ,同样我们点击该图标就可以清空控制台
所以我们只需要在代码中触发控制鼠标箭头自动点击控制台右侧的 “ 清除所有” 的 “ 小垃圾桶” 图标就可以实现清空控制台,代码如下:
import java.awt.*;
import java.awt.event.InputEvent;
public static void clear(int x, int y) throws AWTException{
Robot bot = new Robot();
bot.mouseMove(x, y);
bot.mousePress(InputEvent.BUTTON1_MASK);
bot.mouseRelease(InputEvent.BUTTON1_MASK);
}
在对应位置调用该方法,输入对应坐标即可,如下这是我的图标坐标:
clear(200,780)
但是这个方法的不足就是需要定位你的控制台右侧的 “ 小垃圾桶 ” 的坐标,所以你就要去确认你的图标坐标是多少,可以通过截屏软件或者其他工具来确认坐标,但是当你打开控制台的时候可能会调整控制台的长宽,这会就会导致这个图标以及对应的坐标并不是固定的,所以还是有些小麻烦的,但是也能实现跟上一种方法同样的效果。
Windows 中清空 cmd 方法
代码如下:
public static void clearnCmd {
try {//使用命令的过程可能会出现失败,需要捕获异常
// Process process = Runtime.getRuntime().exec("cls");
new ProcessBuilder("cmd", "/c", "cls")
// 将 ProcessBuilder 对象的输出管道和 Java 的进程进行关联,这个函数的返回值也是一个
// ProcessBuilder
.inheritIO()
// 开始执行 ProcessBuilder 中的命令
.start()
// 等待 ProcessBuilder 中的清屏命令执行完毕
// 如果不等待则会出现清屏代码后面的输出被清掉的情况
.waitFor(); // 清屏命令
} catch (Exception e) {
e.printStackTrace();
}
}
在对应位置直接调用该方法即可实现清空cmd。(只能在Windows中运行程序时使用)
总结:
以上就是介绍的 Windows 下清空 cmd 和 idea中 三种清空控制台的方法,希望让那些遇到同样问题的小伙伴们少走弯路哈。
IDEA清空控制台以及Java中运行cmd命令实现清屏操作的更多相关文章
- 怎样在Java中运行Hive命令或HiveQL
这里所说的在Java中运行Hive命令或HiveQL并非指Hive Client通过JDBC的方式连接HiveServer(or HiveServer2)运行查询,而是简单的在部署了HiveServe ...
- java中执行cmd命令
一.java执行cmd命令的三种方式:http://www.jb51.net/article/80829.htm 参考:https://www.cnblogs.com/zhufu9426/p/7928 ...
- JAVA中调用CMD命令,并输出运行结果
package com.wzw.util; import java.io.BufferedReader; import java.io.InputStreamReader; public class ...
- mysql在cmd命令下执行数据库操作
windows+r 运行cmd命令,执行以下操作! 当mysql 数据库文件相对于来说比较大的时候,这个时候你可能在正常环境下的mysql中是导入不进去的,因为mysql数据库本身就有默认的导入文件大 ...
- Java中运行javascript代码
Java中运行javascript代码 1.Java 代码 2.JS代码 2.1demoWithParams.js 2.2demoWithListParams.js 原文作者:russle 原文地址: ...
- Atitit.运行cmd 命令行 php
Atitit.运行cmd 命令行 php 1. 运行cmd 命令行,调用系统命令的基础 1 1.1. 实际运行模式 1 1.2. 空格的问题 1 1.3. 中文路径的问题.程序文件读取编码设置 1 1 ...
- ECStore在Win环境下如何运行CMD命令
大多数程序员使用windows开发环境来做ECStore二次开发,经常需要使用 ECStore自带的cmd命令进行一些系统操作,如清除缓存(cacheclean),升级程序(update),创建新的a ...
- C#隐式运行CMD命令(隐藏命令窗口)
原文 C#隐式运行CMD命令(隐藏命令窗口) 本文实现了C#隐式运行CMD命令的功能.下图是实例程序的主画面.在命令文本框输入DOS命令,点击"Run"按钮,在下面的文本框中输出运 ...
- [delphi]运行cmd命令,并取得输出字符
http://blog.csdn.net/nerdy/article/details/8969189 [delphi]运行cmd命令,并取得输出字符 标签: delphiCMD命令 2013-05- ...
随机推荐
- PHP进阶玩法
1. 删除不必要的模块. PHP随带内置的PHP模块.它们对许多任务来说很有用,但是不是每个项目都需要它们.只要输入下面这个命令,就可以查看可用的PHP模块: # php - m 一旦你查看了列表, ...
- EB和Varuxn的单字聊天
持续更新! 本文已经征得\(Varuxn\)同意,仅当做记录网课的趣事和"深厚"的友情 原标题<ErB和Varuxn的单字聊天> 原标题来源: 这个想法来源是 \(Va ...
- 【原创】Selenium获取请求头、响应头
本文仅供学习交流使用,如侵立删! Selenium获取请求头.响应头 操作环境 win10 . mac Python3.9 selenium.seleniumwire selenium是没有办法直接获 ...
- 浅淡 Apache Kylin 与 ClickHouse 的对比
作者简介 周耀,Kyligence 解决方案架构师,Apache Kylin.Apache Superset Contributor. Apache Kylin 和 ClickHouse 都是目前市场 ...
- CF 559C - Gerald and Giant Chess (组合计数)
\(C_{x+y}^y\)的公式,DP容斥删多余贡献. #include <cstdio> #include <iostream> #include <cstring&g ...
- Spring源码 20 手写模拟源码
参考源 https://www.bilibili.com/video/BV1tR4y1F75R?spm_id_from=333.337.search-card.all.click https://ww ...
- Spring源码 01 概述
参考源 https://www.bilibili.com/video/BV1tR4y1F75R?spm_id_from=333.337.search-card.all.click https://ww ...
- CSS3(一)
(一)CSS简介 CSS主要用来美化页面.布局页面 1.HTML的局限性 HTML主要是做结构,显示元素内容.只关注内容,但是丑.虽然可以做简单的样式,但是非常臃肿和繁琐 2.CSS网页的美容师 CS ...
- Excelize 2.3.1 发布,Go 语言 Excel 文档基础库,支持加密表格文档
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...
- Spring源码环境搭建
Spring源码在github上,地址是https://github.com/spring-projects/spring-framework/,选择5.3.x版本,直接从github上克隆项目网速很 ...