-source 和 -target 兼容性有什么区别?
2022-08-31 23:40:51
使用Java编译器()时,我们可以指定两种兼容性。一个是使用,另一个是使用 。这两者之间有什么区别?javac
-source
-target
例如,和 ?-source 1.5
-target 1.6
另外,是否有任何情况下我们使用不同的源和目标兼容级别?
使用Java编译器()时,我们可以指定两种兼容性。一个是使用,另一个是使用 。这两者之间有什么区别?javac
-source
-target
例如,和 ?-source 1.5
-target 1.6
另外,是否有任何情况下我们使用不同的源和目标兼容级别?
来自 javac 文档:
-来源指定接受的源代码版本。
-目标生成面向指定版本的 VM 的类文件。类文件将在指定的目标和更高版本上运行,但不会在早期版本的 VM 上运行。
在您的示例中:
-source 1.5 and -target 1.6
这将用于确保源代码与 JDK 1.5 兼容,但应生成在 JDK 1.6 及更高版本上使用的类文件。
你为什么要这样做是另一回事。
这表示您的源代码具有什么级别的合规性:您是否在使用注释?那么你至少需要;您是否在接口实现上使用,您将需要等-source
1.5
@override
1.6
指定您希望能够在哪个 Java 版本上运行类。您可以使用 Java SE 编译器并编译以在 Java SE 上运行。-target
7
1.5