随着模块化Java进程的逐步推进,甲骨文正在通过一系列变化,包括与现有IDE的集成,为开发人员和用户带来“重大影响”。甲骨文的一位高级Java业务官员指出了这一冲突。OracleJava平台事业部首席架构师MarkReinhold在最近的一篇名为《Jigsaw项目:模块化运行时镜像》的博文中,讨论了将模块化运行时映像集成到Java和build41版本正式推出所带来的一系列变化和影响。“作为一个重组源代码的重要一步,此举将对开发人员和最终用户产生重大影响。”Reinhold还强调了一系列具体的变化,包括移除Endorsed-StandardsOverride机制以集成JavaCommunityProcess。包含了外部开发的新的标准化版本,在Java虚拟机中删除了Extension机制,将Extension作为可选类使用。“我们意识到这些变化将对某些应用程序产生直接影响,尤其是IDE和其他依赖JDK内部结构的开发工具,”Reinhold说。“我们相信这些变化值得为性能、安全性和可维护性的真正改进带来破坏性后果。我们已经与主要的IDE维护者进行了交谈,以确保他们了解与这些变化相关的问题。”此外,我们已经开始提供必要的帮助和支持。”当被问及Java变化对IDE的实际影响时,Eclipse基金会执行董事、流行的EclipseIDE的创建者MikeMilinkovich指出,Eclipse仍在制定针对Java9的开发计划。代表了大量的工作,”Milinkovich说,“我们欢迎Oracle和Java社区的贡献,以确保Eclipse为Java9提供强大的支持。”Jigsaw项目的模块化改进在今年3月Java8发布时就已经饱受诟病。不过现在Jigsaw已经正式推迟到以后发布的Java9版本。在模块化机制的支持下,应用程序可以只使用它需要运行的模块,这将带来显着的性能提升,并在不同组件之间提供良好的安全隔离。该计划的另一个项目是使Java在小型设备上具有更理想的可扩展性。其他受模块化调整影响的对象包括JRE(JavaSERuntimeEnvironment)和结构相同的JDK镜像。“在此之前,JRE中嵌入的JDK镜像需要在一个jre子目录下;现在,JDK镜像可以以运行时镜像的形式包含完整的开发工具和JDK中已经出现的其他项目的集合.,”Reinhold解释道。原来位于lib目录中的用户可编辑配置文件现在有了新的conf目录。此外,内部文件rt.jar、tools.jar和dt.jar也已被删除,它们的内容将以更高效的格式存储在lib目录中的私有实现文件中。新的内置NIO文件系统提供程序可用于访问存储在运行时映像中的类和源文件。以前读取rt.jar和其他工具文件需要直接更新到当前文件系统。同时,Java的实际模块系统将在JavaSpecificationRequest376中定义。原文链接:http://www.infoworld.com/article/2859789/java/modular-javas-changes-could-break-ides.html
