繁体   English   中英

是否可以在Intellij with Java中在运行时清除控制台选项卡?

[英]Is it possible to clear the console tab during runtime in Intellij with Java?

我试图在使用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();
    }

您可以从Preferences > Keymap为控制台上的“ Clear All分配快捷方式。 在下面的屏幕截图中,我为快捷键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之前添加按键组合以将焦点切换到控制台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM