我有以下情况:
Class Foo引用类Bar中的方法。我想用javac定位Java 1.7来编译类Foo,但是在使用Java 8语法的类路径上提供了一个Bar.class二进制文件,并使用JDK 8编译。在生产中,JRE 1.7将用于运行我的应用程序在类路径上使用不同的Bar.class副本 - 此类版本的Bar使用Java 1.7语法,并使用JDK 7构建。
答案 0 :(得分:2)
对于直接javac,您可以使用-source / -target让Java8 JDK构建Java7类文件(这实际上只是意味着在类文件中添加不同的版本号)。
我的构建使用Maven,虽然我的Jenkins服务器使用Java8构建,但指定的源/目标是1.7,并且每个人都可以使用现有的Java7 JDK运行。当第一个依赖项目迁移到Java8时,Maven POM改为构建1.8目标,每个人都被迫升级。