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

较新的JRE版本可以运行用较旧的JDK版本编译的Java程序吗?

年光明
2023-03-14
问题内容

这可能是一个愚蠢的问题,但是在运行以Java 1.6 1.7
版编译的Java程序和相关库(我使用1.7进行编译,而某些库是使用1.6进行编译)并在1.7 JRE中运行整个程序时,我会遇到任何问题?


问题答案:

您不会遇到任何问题-这就是Java的魔力-它是向后兼容的。您几乎可以在Java 8上运行Java 1中的所有代码。没有理由不能在Java 8
Runtime上运行Java 6代码。

有趣的是,对于用Java 1.4编写的应用程序,在以后的运行时运行它们甚至可以提高速度。这是因为Java一直在不断发展,不仅是被称为“
Java”的语言,而且还是JVM(Java虚拟机)。正如最新的JVM所期望的那样,我仍然可以使用10多年前的源代码。

如果您想定位Java 5 VM,则可以使用Java 8
SDK工具来实现。只要记住第5版VM可能不支持第8版VM的所有功能,就可以最终指定希望支持的目标VM。

我刚刚针对新的Java 8运行时测试了用Java
5写的代码,并且一切都按预期工作,因此,即使我们现在拥有更强大的语言和运行时,我们仍可以继续使用过去的投资。仅此一项就使Java成为公司的绝佳开发选择。



 类似资料:
  • 这可能是一个愚蠢的问题,但我会遇到任何问题运行Java程序和相关的库编译Java版本1.6和1.7(我编译使用1.7而一些库编译使用1.6)和运行整个程序在1.7的JRE里?

  • 我已经使用VsCode从Java项目中创建了一个Jar文件,并且在我的pc中工作得很好。 我试着用一台没有Java的笔记本电脑来运行这样的Jar;所以我刚刚下载并安装了最新版本的JRE(https://www.java.com/es/download/ie_manual.jsp)因为这是运行的唯一要求。罐子 但是,当我尝试在这个Separate笔记本电脑中运行Jar时,我收到一条毫无意义的错误消息

  • Java版本: IDE: 火狐版本:

  • 问题内容: Cloundfoundry最近将其Java buildpack更新到2.5版(包括Java 8和tomcat 8)。我仍想使用2.4版,因为我的应用尚未升级到Java 8。这样做最简单的方法是什么? 我可以使用 但是如何指定使用版本2.4(https://github.com/cloudfoundry/java- buildpack/releases/tag/v2.4 )?显然,指定标

  • 如果我有一个maven项目,它对A和B版本2.0有显式依赖,而A对B版本1.0有传递依赖。较新版本的B会覆盖较旧版本吗?我使用了maven Depencdy:解析目标,看起来旧版本的B没有解析。如果A与较新版本的B不兼容怎么办?或者如果A依赖于B版本2.0,而我的项目在运行依赖关系后对B版本1.0有显式依赖:解析目标,那么我看不到B的较新版本。那么如何解决这些依赖关系呢? 当我使用resolve

  • 如何让composer使用我安装的较新版本的php?我已经下载并在所有本地服务器上使用了PHP5.4,但当我下载composer时,它指向我的mac电脑的默认设置#/usr/local/bin/env版本,即5.3.15。我试图编辑composer可执行文件并更改使用的php,但它破坏了可执行文件。 我试图使用作曲家来安装Laravel,因为它下载了错误的版本。 这就是我的composer可执行文