多个平台,一个 JDK 安装

Multiple Platforms, One JDK Installation

背景

已安装 JDK v1.8.0_92 和 NetBeans v8.0.2.

问题

该项目需要 Java 平台 1.7,如下所示:

问题

是否可以使用JDK1.8并设置1.7为目标平台?如果可以,怎么做?

其他详细信息

设置目标构建(通过其他编译器选项)不会影响目标平台,如下所示:

我的印象是我需要同时安装 JDK 1.8(PMD 需要)和 JDK 1.7(项目需要)。

理想情况下,我希望避免在同一台机器上安装多个 JDK。我怀疑这是不可能的,因为 1.7 平台中的功能可能已在 1.8 中删除(例如,弃用的方法)。

不仅可以在同一台计算机上安装多个 JDK,而且您所处情况的大多数开发人员最终都会这样做。唯一要注意的是路径上同时有多个 JDK(和 JAVA_HOME)(显然路径上的 JDK 应该与 JAVA_HOME,最简单的方法是将 %JAVA_HOME%\bin 添加到路径 env var)

functionality in the 1.7 platform might have been removed in 1.8

JDK 向后兼容是出了名的。里面有些东西是 Java 1 遗留下来的,可能永远不会被删除(对一些 java 开发者不利,包括我在内)。一些常见(烦人)的例子是 Thread.stop(),某些 类 上 serialVersionUid 的奇怪值,由于 java4 兼容性而对泛型的不完整支持,原始容器的继续存在 类 和 AWT,还有很多很多。

更大的问题实际上是安装和使用 JDK 8 并定位 java 7(通过指定 -target,就像您在屏幕截图中所做的那样)。这里的风险是您会不小心导入 java 8 的新内容,此时 jdk8 将很乐意生成 java7 兼容的字节码,但无法找到您的 class/method在运行时使用。

就我个人而言,在 windows 上,我所做的只是在某处提取一堆 JDKs(比如 c:\dev\tools\jdks)并配置不同的 IDE 项目以根据需要使用不同的。我不喜欢他们 "installed".