java - 如果我使用 Java 8 库编写应用程序代码并尝试使用 Java 6 编译器编译它,构建是否会/应该失败?

标签 java eclipse tomcat

我的笔记本电脑上装有 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 虚拟机)。我捕获问题根本原因的方式纯属意外。这是 Java 错误还是已知问题?

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

最佳答案

java.time 仅在 Java 8 中引入。因此,如果您使用它,您的代码将无法在以前的 JVM 版本上运行。

您应该更改您的 Tomcat 的 JVM 版本或从您的项目中删除依赖于 java.time 的代码。

关于java - 如果我使用 Java 8 库编写应用程序代码并尝试使用 Java 6 编译器编译它,构建是否会/应该失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55018169/

相关文章:

java - Amazon RDS 上的 Postgres SSL 不提供公钥?

java - 在 Java 中模拟 C++-typedef

eclipse - Phonegap 屏幕方向插件更新 2.7.0 或 2.8.0

tomcat - 增加tomcat保持事件超时

mysql - 无法让 DataImportHandler 在 Tomcat 中为 Solr 工作

java - 如何反转面积图中的 y 轴

java - .NET 是否与 Java 的 .properties 文件等效?

eclipse - toggleBreakpointsTargetFactory 指定的 id 已注册

java - Eclipse 仅禁用自动尖括号

Java,Tomcat 6 : saving files to local HD