IDEA清空控制台以及Java中运行cmd命令实现清屏操作
文章目錄
- IDEA中清空控制臺(tái)方法
-
- 解決辦法:
-
- 一:打印換行
- 二:通過(guò)按鍵事件控制鍵盤(pán)執(zhí)行清空控制臺(tái)動(dòng)作
- 三:附:Java 按鍵事件 KeyEvent
- 四:使用鼠標(biāo)箭頭觸發(fā)按鈕實(shí)現(xiàn)清空控制臺(tái)操作
- Windows 中清空 cmd 方法
- 總結(jié):
IDEA中清空控制臺(tái)方法
在網(wǎng)上有看到各種的實(shí)現(xiàn)方法,比如:
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();}
}
但是好像都不管用,所以這里給大家提供了兩種正確的解決方法,話(huà)不多說(shuō),直接安排!
解決辦法:
一:打印換行
這里有一個(gè)很笨的方法就是通過(guò)打印多個(gè)換行來(lái) “清空” 之前的內(nèi)容,但是這種方法會(huì)導(dǎo)致你往上翻依舊能看到之前的內(nèi)容,而且換行之后顯示的界面不會(huì)出現(xiàn)在控制臺(tái)頂部看起來(lái)也很別扭,所以這種方法不建議使用,但我還是在這提一下,僅供參考。
System.out.println(new String(new char[50]).replace("\0", "\r\n"))
二:通過(guò)按鍵事件控制鍵盤(pán)執(zhí)行清空控制臺(tái)動(dòng)作
-
按鍵事件可以利用鍵盤(pán)來(lái)控制和執(zhí)行一些動(dòng)作,或者從鍵盤(pán)上獲取輸入,只要按下,釋放一個(gè)鍵或者在一個(gè)組件上敲擊,就會(huì)觸發(fā)按鍵事件。
KeyEvent對(duì)象描述事件的特性(按下,放開(kāi),或者敲擊一個(gè)鍵)和對(duì)應(yīng)的值。java 提供KeyListener接口處理按鍵事件。 -
當(dāng)按下一個(gè)鍵時(shí)會(huì)調(diào)用
KeyPressed處理器,當(dāng)松開(kāi)一個(gè)鍵時(shí)會(huì)調(diào)用KeyReleased處理器,當(dāng)輸入一個(gè)統(tǒng)一編碼時(shí)會(huì)調(diào)用KeyTyped處理器。如果這個(gè)鍵不是統(tǒng)一碼(如功能鍵,修改鍵,動(dòng)作鍵和控制鍵)
每個(gè)按鍵事件有一個(gè)相關(guān)的按鍵字符和按鍵代碼,分別由KeyEvent中的getKeyChar()和getKeyCode()方法返回 -
在 IEAD 中可以通過(guò)在控制臺(tái)右鍵點(diǎn)擊全部清除來(lái)實(shí)現(xiàn)清空終端,如圖:
-
所以我們可以通過(guò)設(shè)置快捷鍵然后調(diào)用按鍵事件同樣可以實(shí)現(xiàn)清空控制臺(tái)的操作,設(shè)置快捷鍵的步驟如下:
-
首先進(jìn)入 IDEA 的設(shè)置界面,找到快捷鍵選項(xiàng)在右側(cè)搜索框中搜索 clear 找到下邊的全部清除選中右鍵點(diǎn)擊
Add KeyBoard Shortcut (添加快捷鍵),輸入自己想要設(shè)置的快捷鍵,最后點(diǎn)擊應(yīng)用,確認(rèn)即可。 -
設(shè)置好快捷鍵后我們就可以創(chuàng)建一個(gè)方法,導(dǎo)入對(duì)應(yīng)的類(lèi)即可
代碼如下:
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);
}
-
最后在對(duì)應(yīng)的位置調(diào)用該方法就可以實(shí)現(xiàn)清空控制臺(tái)的操作了。
-
getKeyChar(): char 返回這個(gè)事件中和鍵相關(guān)的字符
-
getKeyCode(): int 返回這個(gè)事件中和鍵相關(guān)的整數(shù)鍵
-
keyPressed(e: KeyEvent) 在源組件上按下一個(gè)鍵后被調(diào)用
-
KeyReleased(e: KeyEvent) 在源組件上釋放一個(gè)鍵后被調(diào)用
-
KeyTyped(e: KeyEvent) 在源組件上按下一個(gè)鍵然后釋放該鍵后被調(diào)用
-
getKeyCode() 返回定義在表中的值
-
getKeyChar() 返回輸入的字符
三:附:Java 按鍵事件 KeyEvent
| 按鍵常量 | 按鍵 | 按鍵常量 | 按鍵 |
|---|---|---|---|
| VK_ENTER | \n | VK_TAB | \t (Tab鍵) |
| VK_BACK_SPACE | \b | VK_ENTER | \r (回車(chē)鍵) |
| 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 | 大小寫(xiě)鎖定鍵 |
| VK_NUM_LOCK | 小鍵盤(pán)鎖定鍵 | 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 |
當(dāng)然想要查看更多的 KeyEvent 可以在 IDEA 中點(diǎn)擊 KeyEvent 按 F4 轉(zhuǎn)到源碼進(jìn)行查看。
四:使用鼠標(biāo)箭頭觸發(fā)按鈕實(shí)現(xiàn)清空控制臺(tái)操作
在我們的控制臺(tái)右側(cè)工具欄中可以看到一個(gè) “ 小垃圾桶的圖標(biāo) ” ,同樣我們點(diǎn)擊該圖標(biāo)就可以清空控制臺(tái)
所以我們只需要在代碼中觸發(fā)控制鼠標(biāo)箭頭自動(dòng)點(diǎn)擊控制臺(tái)右側(cè)的 “ 清除所有” 的 “ 小垃圾桶” 圖標(biāo)就可以實(shí)現(xiàn)清空控制臺(tái),代碼如下:
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);
}
在對(duì)應(yīng)位置調(diào)用該方法,輸入對(duì)應(yīng)坐標(biāo)即可,如下這是我的圖標(biāo)坐標(biāo):
clear(200,780)
但是這個(gè)方法的不足就是需要定位你的控制臺(tái)右側(cè)的 “ 小垃圾桶 ” 的坐標(biāo),所以你就要去確認(rèn)你的圖標(biāo)坐標(biāo)是多少,可以通過(guò)截屏軟件或者其他工具來(lái)確認(rèn)坐標(biāo),但是當(dāng)你打開(kāi)控制臺(tái)的時(shí)候可能會(huì)調(diào)整控制臺(tái)的長(zhǎng)寬,這會(huì)就會(huì)導(dǎo)致這個(gè)圖標(biāo)以及對(duì)應(yīng)的坐標(biāo)并不是固定的,所以還是有些小麻煩的,但是也能實(shí)現(xiàn)跟上一種方法同樣的效果。
Windows 中清空 cmd 方法
代碼如下:
public static void clearnCmd {try {//使用命令的過(guò)程可能會(huì)出現(xiàn)失敗,需要捕獲異常// Process process = Runtime.getRuntime().exec("cls");new ProcessBuilder("cmd", "/c", "cls")// 將 ProcessBuilder 對(duì)象的輸出管道和 Java 的進(jìn)程進(jìn)行關(guān)聯(lián),這個(gè)函數(shù)的返回值也是一個(gè)// ProcessBuilder.inheritIO()// 開(kāi)始執(zhí)行 ProcessBuilder 中的命令.start()// 等待 ProcessBuilder 中的清屏命令執(zhí)行完畢// 如果不等待則會(huì)出現(xiàn)清屏代碼后面的輸出被清掉的情況.waitFor(); // 清屏命令 } catch (Exception e) {e.printStackTrace();}}
在對(duì)應(yīng)位置直接調(diào)用該方法即可實(shí)現(xiàn)清空cmd。(只能在Windows中運(yùn)行程序時(shí)使用)
總結(jié):
??以上就是介紹的 Windows 下清空 cmd 和 idea中 三種清空控制臺(tái)的方法,希望讓那些遇到同樣問(wèn)題的小伙伴們少走彎路哈。
?
總結(jié)
以上是生活随笔為你收集整理的IDEA清空控制台以及Java中运行cmd命令实现清屏操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 6号板编译失败找不到arm-none-l
- 下一篇: 五步法颈椎病自我按摩图解