Scannerfehler mit nextInt () [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Wie verwende ich java.util.Scanner, um Benutzereingaben von System.in korrekt zu lesen und darauf zu reagieren? 1 AntwortIch versuche, mit dem Scanner einen Int von der Tastatur abzurufen, erhalte jedoch die folgende Fehlermeldung:
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)
Das habe ich. Es ist unabhängig vom Rest meines Programms, ich verstehe nicht, warum das nicht funktioniert. Es wird in einer Methode deklariert, die in einer while-Schleife aufgerufen wird, wenn das hilft.
// scan for selection
Scanner s = new Scanner(System.in);
int choice = s.nextInt(); // error occurs at this line
s.close();
Ich bin mit dem Debugger durchgegangen und habe den Fehler auf Folgendes eingegrenzt:
In der Java-Laufzeitumgebung wurde ein schwerwiegender Fehler festgestellt: SIGSEGV (0xb) bei pc = 0xb6bdc8a8, pid = 5587, tid = 1828186944
JRE-Version: 7.0_07-b30 Java-VM: OpenJDK Server-VM (23.2-b09 Linux-x86 im gemischten Modus) Problematischer Frame: V [libjvm.so + 0x4258a8] java_lang_String :: utf8_length (oopDesc *) + 0x58
Fehler beim Schreiben des Speicherauszugs. Core Dumps wurden deaktiviert. Um das Core-Dumping zu aktivieren, versuchen Sie "ulimit -c unlimited", bevor Sie Java erneut starten