较新的JRE版本能否运行使用较旧的JDK版本编译的Java程序?
这可能是一个愚蠢的问题,但在运行Java程序和使用Java 1.6版和1.7版编译的相关库时,我会遇到任何问题吗(我使用1.7版编译,而有些库使用1.6版编译)在1.7 JRE中运行整个程序?您不会遇到任何问题-这就是Java的魔力-它是向后兼容的。您可以在Java 8上运行Java 1中的几乎所有代码。Java 6代码没有理由不在Java 8运行时上运行 有趣的是,对于用Java 1.4编写的应用程序,在以后的运行时运行它们时,甚至可以提高速度。这是因为Java是不断发展的,不仅是称为“Java”的语言,还有JVM(Java虚拟机)。正如最新的JVM所预期的那样,我仍然拥有十多年前的源代码,这些代码仍然可以工作 如果您想以Java5VM为目标,那么可以使用Java8SDK工具来实现。您最终可以指定希望支持的目标VM,只要记住版本5 VM可能不支持版本8 VM将支持的所有功能较新的JRE版本能否运行使用较旧的JDK版本编译的Java程序?,java,Java,这可能是一个愚蠢的问题,但在运行Java程序和使用Java 1.6版和1.7版编译的相关库时,我会遇到任何问题吗(我使用1.7版编译,而有些库使用1.6版编译)在1.7 JRE中运行整个程序?您不会遇到任何问题-这就是Java的魔力-它是向后兼容的。您可以在Java 8上运行Java 1中的几乎所有代码。Java 6代码没有理由不在Java 8运行时上运行 有趣的是,对于用Java 1.4编写的应用程序,在以后的运行时运行它们时,甚至可以提高速度。这是因为Java是不断发展的,不仅是称为“Jav
我刚刚针对新的Java8运行时测试了我用Java5编写的代码,一切都按预期进行,因此,即使我们现在有了更强大的语言和运行时,我们也可以继续使用我们过去的投资。仅此一点就使得Java成为公司的一个伟大的开发选择 正如已经回答的那样,您基本上是安全的,大多数产品和第三方库都能正常工作。然而,确实存在非常罕见的情况,即在JDK版本之间引入了二进制不兼容(使用旧JDK编译的类文件将无法在新JVM中运行的情况) Oracle Java版本间不兼容的官方列表:
。您可能需要首先解压缩JAR文件。如果您在Java 7运行时运行它,是的。如果您使用JDK 7进行开发,并将应用程序编译为JDK 7应用程序,那么,不,它将无法在较旧的运行时上工作。有很多原因要求用户请升级到最新的运行时,主要是安全原因,但也有一些性能问题。如果可以的话,我会选择Java 7,除非你真的必须支持旧版本,否则支持旧版本没有什么意义。-1 MagicDraw不适用于较新版本的Java,甚至连公司都制作了一个降级教程。你看到关于“你可以在Java 8上运行Java 1中的几乎所有代码”的内容了吗?存在一些小的不兼容,主要在JVM的深奥部分。但总体而言,Java仍然非常向后兼容。大约8年后,遗憾的是,这不再是事实。我对Java14和旧的Java应用程序有很多问题,这些应用程序依赖于现在已经从Java运行时中删除的功能。对于标准代码来说,是的,它仍然有效,但是有一些企业库您不能再依赖现有的。JavaFX也是如此。遗憾的是,这迫使我们在工作中考虑从Java转向Rust。实际上,这应该是正确的答案,因为升级到较新的Java版本并不完全安全。如果不使用任何jdk8功能,编译1.8和目标1.8会怎么样。行吗?