Błąd skanera z nextInt () [duplikat]

To pytanie ma już tutaj odpowiedź:

Jak korzystać z java.util.Scanner, aby poprawnie odczytać dane wejściowe użytkownika z System.in i działać na nim? 1 odpowiedź

Próbuję użyć skanera, aby uzyskać int z klawiatury, ale otrzymuję następujący błąd:

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)

To jest to, co mam. Jest niezależny od reszty mojego programu, nie rozumiem, dlaczego to nie działa. Jest zadeklarowana w metodzie, która jest wywoływana w pętli while, jeśli to pomaga.

    // scan for selection
    Scanner s = new Scanner(System.in);
    int choice = s.nextInt();           // error occurs at this line
    s.close();

Przeszedłem przez debuger i zawęziłem błąd do:

Java Runtime Environment wykrył błąd krytyczny: SIGSEGV (0xb) na pc = 0xb6bdc8a8, pid = 5587, tid = 1828186944

Wersja JRE: 7.0_07-b30 Java VM: OpenJDK Server VM (23.2-b09 tryb mieszany linux-x86) Problematyczna ramka: V [libjvm.so + 0x4258a8] java_lang_String :: utf8_length (oopDesc ​​*) + 0x58

Nie udało się zapisać zrzutu pamięci. Zrzuty podstawowe zostały wyłączone. Aby włączyć zrzut pamięci, spróbuj „ulimit -c unlimited” przed ponownym uruchomieniem Java

questionAnswers(1)

yourAnswerToTheQuestion