是否可以在运行期间使用Java清除Intellij中的控制台选项卡?

时间:2017-09-07 17:35:29

标签: java intellij-idea

我试图在运行时使用Java清除Intellij中的控制台选项卡。

有什么想法吗?

这是我试过的:

System.out.print("\033\143");

    public static void clrscr(){
        //Clears Screen in java
        try {
            if (System.getProperty("os.name").contains("Windows"))
                new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
            else
                Runtime.getRuntime().exec("clear");
        } catch (IOException | InterruptedException ex) {}
    }

    public final static void clearConsole()
    {
        try
        {
            final String os = System.getProperty("os.name");

            if (os.contains("Windows"))
            {
                Runtime.getRuntime().exec("cls");
            }
            else
            {
                Runtime.getRuntime().exec("clear");
            }
        }
        catch (final Exception e)
        {
            //  Handle any exceptions.
        }
    }

    public static void clearScreen() {
        System.out.print("\033[H\033[2J");
        System.out.flush();
    }

1 个答案:

答案 0 :(得分:0)

您可以从Clear All为控制台上的Preferences > Keymap分配快捷方式。在下面的屏幕截图中,我将分配快捷方式ALT SHIFT 1以清除控制台。

要测试它,只需将光标放在控制台中并使用该按键组合。

这很容易。接下来,您可以使用java.awt.Robot执行该击键组合。例如:

import java.awt.Robot;
import java.awt.event.KeyEvent;

public void clearConsole() {
    try {
        Robot robot = new Robot();
        robot.keyPress(KeyEvent.VK_ALT);
        robot.keyPress(KeyEvent.VK_SHIFT);
        robot.keyPress(KeyEvent.VK_1);
        robot.keyRelease(KeyEvent.VK_ALT);
        robot.keyRelease(KeyEvent.VK_SHIFT);
        robot.keyRelease(KeyEvent.VK_1);
    } catch (AWTException ex) {
        ex.printStackTrace(System.err);
    }
} 

使用Robot可能有点棘手,所以你可能不得不玩这个,包括在执行ALT SHIFT 1

之前添加按键组合以将焦点切换到控制台