代码之家  ›  专栏  ›  技术社区  ›  Andrew McKinlay

有没有办法确定Java系统输入是“互动”吗?

  •  5
  • Andrew McKinlay  · 技术社区  · 15 年前

    如果输入是交互式的,例如从控制台,我想打印一个命令提示符,例如“>”

    但是如果它被重定向,例如从一个文件,那么我不想提示。

    如果具体类型不同,也许你可以用instanceof?

    同样,如果系统输出被重定向到一个我也不想提示的文件

    2 回复  |  直到 15 年前
        1
  •  4
  •   Stephen C    15 年前

    实际上,在纯Java中没有办法做到这一点,甚至在JNI/JNA中也会很复杂。

    tty(1) 命令可用于判断stdin是否连接到“tty”设备。

        2
  •  -2
  •   Brad Mace Mike King    11 年前

    您可以使其交互:

    public static void main(String args[]) throws Exception {
        String action = null;
        Scanner in = new Scanner(System.in);
    
        while (!((action = in.nextLine()).equalsIgnoreCase("exit"))) {
            if (action.equalsIgnoreCase("open")) {
                openConnections();
            } else if (action.equalsIgnoreCase("close")) {
                closeConnections();
            }
        }
    }