【发布时间】:2012-10-01 16:07:18
【问题描述】:
我正在尝试使用 Scanner 从键盘获取 int,但出现以下错误:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at TableReader.mainMenu(TableReader.java:122)
at TableReader.main(TableReader.java:76)
这就是我所拥有的。它独立于我的程序的其余部分,我不明白为什么这不起作用。如果有帮助,它会在一个在 while 循环中调用的方法中声明。
// scan for selection
Scanner s = new Scanner(System.in);
int choice = s.nextInt(); // error occurs at this line
s.close();
我逐步调试了调试器并将错误缩小到:
Java 运行时环境检测到一个致命错误: SIGSEGV (0xb) at pc=0xb6bdc8a8, pid=5587, tid=1828186944
JRE 版本:7.0_07-b30 Java VM:OpenJDK Server VM(23.2-b09混合模式linux-x86) 有问题的框架: V [libjvm.so+0x4258a8] java_lang_String::utf8_length(oopDesc*)+0x58
无法写入核心转储。核心转储已被禁用。要启用核心转储,请在再次启动 Java 之前尝试“ulimit -c unlimited”
【问题讨论】: