build path中的order and Export,如果两个libarary中有相同功能的jar包,则编译器会选择顺序在前的jar包中相应的类作为编译所需。
所以,当项目jar包较多的时候,如果导入了多次的jar包版本不一样,而没有使用到你想用的那个版本jar包时,编译问题就会出现。如下图所示:
一:编译正常,因为使用了Maven Dependency中指定的javax.servlet-api 3.0.1jar包。
二:编译错误,因为使用了java EE5 libarary