【问题标题】:javac source and target options usagejavac 源和目标选项用法
【发布时间】:2015-09-29 18:49:33
【问题描述】:

当我们使用 javac 选项时:
-source 和 -target
编译器如何“知道”要生成的代码?

我的意思是任何编译器如何知道任何以前的规范 java release 或者我必须做一些设置才能提供它 关于他们的一些信息?

【问题讨论】:

标签: java compilation java-7 javac


【解决方案1】:

javac 程序知道如何处理这些参数,而无需您提供任何额外信息。但是请注意这里有一个陷阱:这些选项与源语法和类文件的形式和内容有关,但它们没有考虑到 Java 标准库。因此,尽管源或目标 Java 版本被设置为较早的版本,但他们将完全满足于编译依赖于(例如)Java 7 中新的标准库类或方法的代码。 原则上结果可以在较早的 Java 版本上运行,但实际上这需要向后移植较晚的标准库,至少部分向后移植。

如果您正在为特定最低版本的 Java 开发,您应该使用该版本进行开发。 -source 和 -target 选项会在您或其他人以后想要使用更高版本的 javac 重建源代码时发挥作用,而不会降低与早期目标 Java 的运行时兼容性。

【讨论】:

  • 对不起,我的无知,但你能解释一下你的意图吗?至少部分。谢谢;)
  • @GionJh,基本上,我的意思是“在实践中,如果您的代码依赖于给定 Java 版本中新引入的标准库功能,那么无论如何它都不会在任何早期版本的 Java 上运行你是怎么编译的。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多