compliance

java complier compliance level and jdk version

点点圈 提交于 2019-12-01 14:41:55
一、熟悉一下问题来龙去脉 转载自 点击 环境: jdk 1.6; jboss 5.1.0.GA eclipse 4.2 这里可以配置的jdk,还有个java compiler中可以配置compiler level(如图中红色框)。这两个东西就是这个问题的关键。 在eclipse中进行开发的时候,build path 中JDK进行类库的编译(就是你使用类在不在这个JDK中),java compiler compliance level是对这个项目语法的编译(就是你的项目中语法的正确与否),也可以把java compiler compliance level中配置的编译版本号的作用看作是你这个项目将来开发完毕之后,要放到服务器上运行,那个服务器上JDK的运行版本。 而我的问题就出在build path中配置1.6的JDK,java compiler compliance level中配置的1.7(因为以前我用过一段时间1.7) 而在jboss服务器上是1.6的JDK,就报了那个错误,说是编译所用的jdk(1.7)比运行所用的jdk(1.6)高了,这是错误的。 放在其他人机器上之所以不报错,是因为他的jboss使用的jdk恰恰是1.7。这个版本是向下兼容的。 再拿个被人举过的例子,如果JDK1.4不能使用泛型。而java compiler compliance