在运行时和编译时jdk版之间,哪一个可以更大

时间:2015-10-14 05:17:53

标签: java jar executable-jar

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

3 个答案:

答案 0 :(得分:4)

  • 所以,我的理解是你正在用jdk1.6编译一个java应用程序,并在一个基于jdk1.8的运行时上运行相同的应用程序。 (例如,这里也可以jdk1.7)
  • 通常,JDK / JRE的设计应该是向后兼容的。
  • 最好使用大于或等于编译版本的运行时环境版本(JVM),反之亦然。
  • JDK(编译版)< = JDK(运行时 - 版本) - 正确
  • JDK(编译版)> = JDK(运行时 - 版本) - 不正确

答案 1 :(得分:2)

  1. Java是向后兼容的,大多数情况下,您可以在较新的运行时运行使用较旧的jdk编译的代码。
  2. 使用较新的jdk进行开发时,您可以指定要支持的目标虚拟机版本。
  3. 所以这两种情况都很有可能:使用在较新的运行时运行的旧jdk编译的代码,以及在旧运行时运行的较新的jdk编译的代码。

答案 2 :(得分:1)

理想情况下,您应始终使用运行时环境运行Java程序,该环境与用于构建它的相同更新。这是因为Java通常在某种程度上确保向后兼容性。但是,无法保证向前兼容性。

例如,如果使用1.7版本构建Java程序,则应该以1.8 JRE运行。但反之则不然,即1.8程序可能无法在较旧的1.7 JRE中正确运行。