我的笔记本电脑上装有 Java 8。我使用 java.time 库编写了一个小代码片段,以使用 Eclipse IDE v4.9(2018-09 版)计算应用程序处理时间。该项目使用Java 1.6 编译器版本。然后我在我的笔记本电脑上运行该应用程序,它运行时没有任何错误,并且产生了预期的输出。然后我使用 Java 1.6 编译器将应用程序导出到一个 war 文件中,以便在运行 Java 1.7 vm 的 tomcat 6 服务器中运行它。我遇到过以下情况:
- 日志文件中没有错误。日志级别设置为调试。
- 应用程序处理数据库行并根据某些逻辑插入 4 个不同的数据库表。在轮询输入数据库表时,应用程序未选取有效的输入行。
- 我在我的笔记本电脑上安装了 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/