Wydaje mi się, że ma to związek ze specyfiką działania Scannera. Metoda nextInt() nie pobiera znaku entera, który zostaje w buforze podczas pobierania int'a. W normalnym programie takie coś załatwia się najprościej wywołując nextLine zaraz za nextInt(). W shellu natomiast działa to jakoś inaczej i sposób z wywoływaniem nextLine() aby pobrać samego entera, po nextInt, nie działa. Trzeba to obejść zdaje się tak:
int d = Integer.parseInt( scanner.nextLine() );
System.out.println("d: " + d);
String s = scanner.nextLine();
System.out.println("s: " + s);