运行时和编译时jdk版本,哪个可以更大

问题描述 投票:0回答:3

java 程序或 jar 的运行时版本和编译时版本这两者中哪一个应该大于或等于另一个? 编辑:JRE系统库的版本应该是什么?

java jar executable-jar
3个回答
5
投票
  • 所以,我的理解是,您正在使用 jdk1.6 编译一个 java 应用程序,并在基于 jdk1.8 的运行时上运行相同的应用程序。 (比如这里也可以是jdk1.7)
  • 一般来说,JDK/JRE 会以向后兼容的方式设计。
  • 最好使用大于或等于编译版本的运行时环境版本(JVM),反之亦然。
  • JDK(编译版)<= JDK(Runtime-Version) - Correct
  • JDK(编译版本)>= JDK(运行时版本) - 不正确

4
投票
  1. Java 是向后兼容的,大多数时候您可以在较新的运行时上运行使用旧版 jdk 编译的代码。
  2. 使用较新的 jdk 进行开发时,您可以指定要支持的目标虚拟机版本。

因此这两种情况都很有可能:使用较旧的 jdk 编译的代码在较新的运行时运行,以及使用较新的 jdk 编译的代码在旧的运行时运行。


1
投票

理想情况下,您应该始终使用与构建它所用的运行时环境“相同”或“更新”的运行时环境来运行 Java 程序。 这是因为Java一般会在一定程度上保证向后兼容性。 但是,不保证向前兼容性。 例如,如果您使用 1.7 版本构建 Java 程序,则预计它将在 1.8 JRE 中运行。 但反之则不然,即 1.8 程序可能无法在较旧的 1.7 JRE 中正确运行。

© www.soinside.com 2019 - 2024. All rights reserved.