我可能会对遗留项目进行一些交叉编译,并且我注意到在最近的JDK中,我们仅限于source
,target
和release
JVM参数的某些特定版本。 br />
如何获得这些参数的受支持版本?
答案 0 :(得分:2)
实际上,受支持的值取决于所使用的主要JDK版本。
您可以在各个主要JDK版本的javac
文档中找到信息(以下引用了链接)。
关于这些参数的一些一般说明:
Maven配置中的source
和target
版本不应优于所使用的JDK版本。
JDK的较旧版本无法编译,因为它不知道其规范。
Java 9中存在release
自变量。
由于source
和target
相同,因此应优先使用release
自变量而不是source
和target
。指定的时间较短,可以确保更好的交叉编译兼容性,即使您不进行交叉编译,也不会造成损害。
有关更多说明,请参阅this excellent answer。
源/目标/发行版支持的版本:
source
:1.3、1.4、1.5(也为5),1.6(也为6)和1.7(也为7)。
target
:1.1、1.2、1.3、1.4、1.5(也为5),1.6(也为6)和 1.7(也是7)。
source
:1.3、1.4、1.5(也为5),1.6(也为6),1.7(也为7)和1.8(也为8)。
target
:1.1、1.2、1.3、1.4、1.5(也为5),1.6(也为6),1.7 (也为7)和1.8(也为8)。
source
:1.6(也为6),1.7(也为7),1.8(也为8)和9。
target
:1.6(也是6),1.7(也是7),1.8(也是8)和9。
release
:6、7、8和9。
source
:1.6(也是6),1.7(也是7),1.8(也是8),9和10。
target
:1.6(也为6),1.7(也为7),1.8(也为8),9和10。
release
:6、7、8、9和10。
您可以在the javac documentation for JDK 1.8,JDK 9和JDK 10中获得更多详细信息