Java Mac OSX终端中的扫描仪工作不正常

Java Mac OSX终端中的扫描仪工作不正常,java,macos,io,intellij-idea,java.util.scanner,Java,Macos,Io,Intellij Idea,Java.util.scanner,我有一个黑客蚂蚁命令,用户可以运行它来做一些事情。此命令提示用户输入。在IntelliJ中,测试时,它工作正常。但是当我从终端运行ant目标时,我会有奇怪的行为。代码如下: Scanner userIn = new Scanner(System.in); PrintWriter writer = new PrintWriter(System.out); writer.println(error + " If you continue with the load, som

我有一个黑客蚂蚁命令,用户可以运行它来做一些事情。此命令提示用户输入。在IntelliJ中,测试时,它工作正常。但是当我从终端运行ant目标时,我会有奇怪的行为。代码如下:

    Scanner userIn = new Scanner(System.in);
    PrintWriter writer = new PrintWriter(System.out);
    writer.println(error + "  If you continue with the load, some data may be in a corrupted state.  Would you like to continue? (y/n): ");
    writer.flush();
    String userResponse = userIn.next();
    while (!(userResponse.equalsIgnoreCase("y") || userResponse.equalsIgnoreCase("n")
      || userResponse.equalsIgnoreCase("yes") || userResponse.equalsIgnoreCase("no"))) {
      writer.println("Invalid input.  Please specify if you would like to continue with the load. (y/n): ");
      writer.flush();
      userResponse = userIn.next();
    }
    return userResponse.equalsIgnoreCase("y") || userResponse.equalsIgnoreCase("yes");
当从终端运行ant命令时,会正确显示错误消息,但当用户输入输入时,要么什么都不会发生,要么我必须按enter键多次才能处理任何内容。它还拒绝正确读取输入。如果我输入yes,它仍然会永远循环,提示输入,就好像用户输入了无效的输入一样

这是某种臭虫吗?我会用扫描仪吗


编辑:我已经尝试过使用nextLine()。有时,我会得到一个java.util.NoSuchElementException:找不到行异常。其他时候,如果我按enter键10+次,它就会工作。

我的程序(通过ant运行)会创建一个扫描器,但当要求输入时,程序似乎只是循环,在我用ctrl+c终止之前不会接受任何输入。原来问题是build.xml文件中的“fork”属性。我有fork=“yes”,我把它改为“no”,或者干脆把它完全取出来,扫描仪工作得很好。希望这有帮助