Java Scanner.hasNext()在Eclipse中运行时无法正常工作

Java Scanner.hasNext()在Eclipse中运行时无法正常工作,java,eclipse,java.util.scanner,Java,Eclipse,Java.util.scanner,我编写了一个简单的程序来循环并查找用户输入的一组数字的最大值,如下所示: import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int currMax, currEl; currMax = sc.nextInt(); while (sc.hasNext()) { currEl

我编写了一个简单的程序来循环并查找用户输入的一组数字的最大值,如下所示:

import java.util.Scanner;

public class Test {

public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  int currMax, currEl;
  currMax = sc.nextInt();

  while (sc.hasNext()) {
    currEl = sc.nextInt();
    currMax = (currEl > currMax ? currEl : currMax);
  }
  sc.close();
  System.out.println(currMax);
} // end function main

}

我正在Windows上使用Eclipse

当我第一次运行它时,它运行良好,并将Ctrl-Z视为EOF并退出循环。但第二次以后,它似乎没有读到EOF。我无法解释这一点,也无法纠正这一行为。。你认为发生了什么事,我该如何解决它



跟进:问题发生在Eclipse上,而不是在我使用cmd行时。我怀疑这就是正在发生的情况——如果我使用cmd行,我可以执行Ctrl-Z,然后按Enter键,但如果我使用Eclipse,我相信只要按Ctrl-Z键,s.hasNext()的计算结果就会为false,并且上面的程序就会终止。

在Eclipse Mars for Windows下,我会看到相同的行为。几年前,在这个领域有一个Eclipse bug,也许它还没有完全修复:我在Eclipse Mars for Windows下看到的相同行为的可能重复。几年前,在这个领域有一个Eclipse bug,可能还没有完全修复: