有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

我应该继续编译旧版本的Java吗?

自从Java8发布以来,我发现自己慢慢地依赖于我刚刚开始的库项目中的Java8特定功能(例如lambda语句)

我见过许多其他的项目,到今天为止,它们仍然是基于Java7,甚至Java6构建的,这让我不得不怀疑自己

立即开始针对最新版本的Java进行构建是个好主意,还是应该继续使用旧版本

请注意,与其他在Java6/7是最新版本时启动的项目不同,我的项目是最近在Java8是最新版本时启动的


共 (3) 个答案

  1. # 1 楼答案

    我认为有两个原因需要使用Java 8之前的JVM:

    1. 您正在编写一个库,该库正被您组织之外的一大群人使用,他们仍然停留在Java8之前的JVM上。如果您使用最新和最好的JVM,他们将无法再使用您的产品

    2. 您依赖于尚未升级到Java 8并在Java 8上中断的第三方库

    因为你提到这是一个新项目,所以#1不太可能。即使您计划拥有外部用户,如果它是一个新项目,需要最新版本的JVM也不是一个真正的问题

    随着越来越流行的第三方库发布了用于Java8的更新,第二也变得越来越不可能了。即使是少数掉队的人也可以在Java8上工作。例如,我在Java8中使用了hibernate的一个古老版本。我只是没有在任何映射字段/实体中使用任何Java8特性

  2. # 2 楼答案

    Java8表示自Java5(或其诞生)以来该语言的一个重大变化。如果您专门针对已更改的语言部分(我想您是这么说的),那么只有通过Java8+运行时才能使用它是有意义的

    当Java 5出现在10年前,您希望在自己的库开发中使用当时引入的所有新功能(例如foreach语句、Enum等),您会怎么做?我相信您会使您的库至少需要Java5。如果你同意这一点,那么(合理的)逻辑同样适用于你目前的情况

  3. # 3 楼答案

    对于服务器端应用程序,可能是EJP建议的当前版本之前的一两个版本

    然而,在客户端,我认为尝试支持旧的Java版本没有任何意义。JRE至少从Java6开始自动更新。它已经到了Java Web Start启动的应用程序无法指定早于当前JRE的JRE的程度。或者更确切地说,它可以在启动文件中指定它选择的任何JRE,但这将被忽略,以支持用户计算机上安装的最新版本