gpt4 book ai didi

java - 扫描仪在 Mac OSX 终端中无法正常工作

转载 作者:行者123 更新时间:2023-12-01 14:41:43 25 4
gpt4 key购买 nike

我有一个用户可以运行的 hacky Ant 命令来执行一些操作。该命令提示用户输入。在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: No line found 异常。其他时候,如果我按 Enter 10 次以上,它就会起作用。

最佳答案

我遇到了同样的问题,我的程序(通过 ant 运行)会创建一个扫描仪,但当要求输入时,程序似乎只是循环并且不接受任何输入,直到我用 ctrl+c 终止。原来问题出在我的 build.xml 文件中的“fork”属性。我有 fork ="is",我将其更改为“否”,或者只是将其完全取出,扫描仪工作得很好。希望这有帮助!

关于java - 扫描仪在 Mac OSX 终端中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15889389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com