Erro de scanner com nextInt () [duplicado]

Esta questão já tem uma resposta aqui:

Como usar java.util.Scanner para ler corretamente a entrada do usuário do System.in e agir sobre ela? 1 resposta

Eu estou tentando usar o Scanner para obter um int do teclado, mas estou recebendo o seguinte erro:

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)

É isso que tenho. É independente do resto do meu programa, não entendo porque isso não está funcionando. Ele é declarado em um método que está sendo chamado em um loop while, se isso ajudar.

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

Eu passei pelo depurador e reduzi o erro para:

Um erro fatal foi detectado pelo Java Runtime Environment: SIGSEGV (0xb) em pc = 0xb6bdc8a8, pid = 5587, tid = 1828186944

Versão do JRE: 7.0_07-b30 VM Java: OpenJDK VM do Servidor (23.2-b09 modo misto linux-x86) Quadro problemático: V [libjvm.so + 0x4258a8] java_lang_String :: utf8_length (oopDesc ​​*) + 0x58

Falha ao gravar o despejo principal. Os dumps principais foram desativados. Para ativar o esvaziamento do núcleo, tente "ulimit -c unlimited" antes de iniciar o Java novamente

questionAnswers(1)

yourAnswerToTheQuestion