首页 > 解决方案 > 如果我使用 Java 8 库编写应用程序并尝试使用 Java 6 编译器对其进行编译,构建会/应该失败吗?

问题描述

我的笔记本电脑上有 Java 8。我使用 java.time 库编写了一个小代码片段,以使用 Eclipse IDE v4.9(2018-09 版本)计算应用程序处理时间。该项目使用Java 1.6 编译器版本。然后我在我的笔记本电脑上运行该应用程序,它运行时没有任何错误,并且产生了预期的输出。然后我使用 Java 1.6 编译器将应用程序导出到一个 war 文件中,以便在运行 Java 1.7 vm 的 tomcat 6 服务器中运行它。我遇到了以下情况:

  1. 日志文件中没有错误。日志级别设置为调试。
  2. 应用程序处理数据库行并基于一些逻辑,插入 4 个不同的数据库表。在轮询输入数据库表时,应用程序没有选择有效的输入行。
  3. 我在笔记本电脑上安装了 Java 7,将 Java 7 设置为工作区 JRE,代码片段引发了编译错误。

我的问题是,当我使用 Java 6 编译器基于 Java 8 库编译代码时,构建不应该失败吗?在整个练习过程中,应用程序从未出现任何错误,它在我的笔记本电脑上成功运行并产生了预期的输出(显然是由于我的笔记本电脑有 Java 8 vm)。我发现问题根本原因的方式纯属意外。这是 Java 错误还是已知问题?

更新:我不是在寻找问题的解决方案。我正在寻找 Java 编译器行为的解释。

标签: javaeclipsetomcat

解决方案


如果您使用 Maven,您的代码将被运行。但是您必须确保仅使用所选 Java 版本的功能。


推荐阅读