java - 如果我使用 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 服务器中运行它。我遇到了以下情况:
- 日志文件中没有错误。日志级别设置为调试。
- 应用程序处理数据库行并基于一些逻辑,插入 4 个不同的数据库表。在轮询输入数据库表时,应用程序没有选择有效的输入行。
- 我在笔记本电脑上安装了 Java 7,将 Java 7 设置为工作区 JRE,代码片段引发了编译错误。
我的问题是,当我使用 Java 6 编译器基于 Java 8 库编译代码时,构建不应该失败吗?在整个练习过程中,应用程序从未出现任何错误,它在我的笔记本电脑上成功运行并产生了预期的输出(显然是由于我的笔记本电脑有 Java 8 vm)。我发现问题根本原因的方式纯属意外。这是 Java 错误还是已知问题?
更新:我不是在寻找问题的解决方案。我正在寻找 Java 编译器行为的解释。
解决方案
如果您使用 Maven,您的代码将被运行。但是您必须确保仅使用所选 Java 版本的功能。
推荐阅读
- python - 如何通过将每个最长的非分支路径替换为连接路径起点和终点的边来减少 DAG?
- google-apps-script - 找不到脚本函数
- php - 如何借助 AJAX 中的一个函数处理多个请求?
- python - 如何有效地有条件地合并两个数据框
- reactjs - 每当访问第三方网站(如亚马逊)时,我如何保持 redux 值
- git - 如何将文本文件添加到 git 存储库?该文件位于 Visual Studio 发布目录下
- c - 缓存模拟器 :: Hit vs Miss 问题
- node.js - Sequelize无法在array.map Node js中使用事务
- sql-server - 如何修复 rds 数据库和 asp.net 应用程序之间的数据连接?
- c# - 在 C# 中使用公共整数,根据动态不断增加的数字制作递增数字的公式