当前位置: 首页 > 面试题库 >

Java SE 8:Java 7编译的JAR是否与Java 8完全兼容?

宰父嘉胜
2023-03-14
问题内容

我使用Java 7编译了旧的JAR文件,并且生产环境中使用了Java8。将JAR文件直接部署到Java 8
Environment上需要注意什么吗?我测试了它们是否在Java
8上运行,并且运行良好。我会遇到任何问题还是应该没事?我想知道这是因为我正在辩论删除Java 8和安装Java 7。

编辑:附带问题:公司在更新Java版本时会更新代码吗?我无法想象这一定是多么痛苦,所以让您的应用程序在以前的版本上运行,然后在新版本上完全失败。


问题答案:

我想知道这是因为我正在辩论删除Java 8和安装Java 7。

我想你的意思是相反的?

Java尝试尽可能保持向后兼容性,因此从理论上讲,至少您应该没问题。

但是实际上,有时候确实会出现问题,因此我建议进行彻底测试。这些可能是由于回归错误,或者(根据我的经验,更可能是错误代码),这些错误代码可能在Java
7下可以正常运行,但在8以下不能正常运行。(FWIW,我有一些FX应用程序在8以下运行,但在8以下运行良好)
7,事实证明,两者都是由于我的代码中的错误所致,而这些错误在使用7运行时恰好没有异常的副作用。)



 类似资料:
  • 我有Java8SDK和运行时,以及一个只使用Java7个功能的项目。我想知道我是否可以设置intellij来构建一个Java-7级的jar,从命令行肯定可以做到这一点? 到目前为止,我已经尝试过简单地将项目语言级别设置为7作为实验,但这显然是不够的,也不是我真正需要的。 我在SO上也看到过这个问题:"Intellij IDEA使用java7编译器编译,当我已经将其配置为使用Java6",但我的项目

  • 我们有一个运行在java 7上的服务器端进程:java-version:java version“1.7.0”java(TM)SE运行时环境(build 1.7.0-b147)java HotSpot(TM)64位服务器VM(build 21.0-b17,混合模式) 它接受来自我们自己开发的java应用程序(通过正确签名的JNLP启动)的SSL连接。 通常情况下,不管客户机应用程序是运行在Java

  • 我有一个jar文件在某些特性只属于(用于ex lambda表达式),所以它是在中编译的。同一jar具有属于和的一些特性。现在,我希望当用户在中运行这个jar时,相关类应该可以工作,因为他/她只想要在上工作的功能。如果他/她想要与Java8相关的功能,他将使用运行它。

  • Azure Service Bus的文档如图所示: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-java-how-to-use-queues#configure-your-application-to-use-service-bus 它使用java 8。代码示例也使用Java8语法和函数。我有一个

  • Java8引入了重要的新语言特性,如lambda表达式。 语言中的这些变化是否伴随着编译字节码中的重大变化,从而阻止它在不使用某些反向翻译器的情况下在Java7虚拟机上运行?

  • 我的pom文件列表 但是,在时,我得到 当我运行时,我看到实际上我使用的是Java6 它可以在哪里定义?我有源(d)my.zshrc多次。