新手自学java遇到的小疑点,求高手解答

新手自学java遇到的小问题,求高手解答。
今天在阅读《Java核心技术》时实验书中的一个例子:
import java.util.*;


public class Sample
{
  public static void main(String[] args) 
  {
  Scanner in = new Scanner(System.in);
 
  System.out.println("What's your name?");
  String name = in.nextLine();
 
  System.out.println("How old are you?");
  int age = in.nextInt();
 
  System.out.println("Hi, " + name + "next year you will be" + (age + 1) );
  }

}

这个例子我认为应该有2次输入,并且第一次应该是字符串类型,第二次应该是整形的。
之后应该会打印出所输入的数据。

但是结果是:

What is your name? a
How old are you? Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Sample.main(Sample.java:16)

我只输入了一个字符“a”之后回车,但是却没有给我第二次输入的机会,而且直接报错。
我百思不得其解,而且去网上也没寻找到答案,请高手指点。

------解决方案--------------------
lz的代码是没有问题的,在cmd里面运行一下试试
------解决方案--------------------
代码是绝对没有问题的,你看看再新建一个项目试试