IDEA清空控制台以及Java中运行cmd命令实现清屏操作
文章目錄
- IDEA中清空控制臺方法
-
- 解決辦法:
-
- 一:打印換行
- 二:通過按鍵事件控制鍵盤執行清空控制臺動作
- 三:附:Java 按鍵事件 KeyEvent
- 四:使用鼠標箭頭觸發按鈕實現清空控制臺操作
- Windows 中清空 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命令实现清屏操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6号板编译失败找不到arm-none-l
- 下一篇: PyTorch-混合精度训练