【发布时间】:2016-09-25 08:00:17
【问题描述】:
我已安装 JDK 1.8 并将 JAVA_HOME 配置为 JDK 1.8。我正在使用 apache-maven-3.0.5。我创建了一个 maven 项目并将 maven-compiler-plugin(3.3) <source> 和 <target> 配置为 1.7。
问题是,如果我使用任何 Java 1.8 功能,例如 String.join() 或 map.remove(key, value),即使我将编译器级别设置为 1.7,它仍然可以成功编译。
我观察到的一件事是,如果我将 JAVA_HOME 指向 JDK 1.7 目录,则会引发编译错误。
但我的期望是,即使当我在 pom.xml 中将编译器级别设置为 1.7 时,我们的 JAVA_HOME 指向 JDK 1.8,它也应该遵守该编译器级别 (1.7) 并抛出错误。
我错过了什么?
PS:当我从我的 Eclipse IDE 运行时,它使用正确的 JDK(1.7) 并给出错误。但是当我从命令行运行它时,我遇到了这个问题。
【问题讨论】: