BT

您是否属于早期采用者或者创新人士?InfoQ正在努力为您设计更多新功能。了解更多

Oracle开始从Java运行时中移除JAR包

| 作者 谢丽 关注 1 他的粉丝 发布于 2014年12月25日. 估计阅读时间: 不到一分钟 | 硅谷人工智能、机器学习、互联网金融、未来移动技术架构 ,尽在QCon上海2017

早在2012年8月,在Java平台首席架构师Mark Reinhold宣布模块化项目Jigsaw之后不久,JEP 162这一题为“准备模块化”的提案就指出,在Jigsaw项目中为模块化系统开发的代码不会集成到JDK 8中。那次延期直接将模块化支持推迟到JDK 9,最早也得到2016年。

不过,Oracle近来加快了向Java引入模块化系统的步伐。2014年8月,Oracle将经过重组的源代码(JEP 201)合并到JDK 9 build 27中。近日,他们又将重构过的运行时(JEP 220)合并到JDK 9 build 41中,以下是其中几项比较重大的变化:

  • JDK中不再包含JRE子目录;
  • 停用授权标准覆盖机制,删除相应的实现代码,用可升级的模块取代它,JDK中不再包含系统属性java.endorsed.dirs及目录lib/endorsed;
  • 停用扩展机制,删除相应的实现代码,类似地,JDK中不再包含系统属性java.ext.dirs及目录lib/ext,但一些与扩展机制相关的Manifest属性,如Class-Path、Sealed等,还会保留;
  • 删除rt.jar、tools.jar、dt.jar以及其它各种内部JAR包,其中的类和资源文件存储在一种名为jimage的更加高效的格式中。需要直接访问rt.jar的工具可以使用一个内部NIO文件系统提供程序访问运行时中的类和资源文件;
  • 子目录lib中的配置文件.properties、.policy移到新目录conf中,其它计划由开发人员、部署人员和终端用户修改的配置文件也保存在该目录中;
  • 为模块、类和资源引入一种新的URI命名规则jrt,它隐藏了JDK内部结构或格式,其语法为jrt:/[$MODULE[/$PATH]]。

Oracle后续还会引入其它一些变化,但Reinhold明确指出,在所有已计划的变化中,上述变化是最重大的。他还特别强调,他们并没有提议删除一般用途的JAR包,而只是删除JRE和JDK中的。

接下来,根据Mark Reinhold的计划,还将有第四项提案。该提案将引入模块化系统本身,而且会与模块化系统JSR保持一致。

感兴趣的读者可以从官方网站上下载Java 9早期试用版。有一点需要注意,该版本不支持Windows XP。


感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

模块化总算有较大进展了,希望不要再跳票! by 孙 奇辉

GG

模块化总算有较大进展了,希望不要再跳票! by 孙 奇辉

GG

不是太懂,请见谅 by zhao wei

不懂瞎猜一下
是因为现在所有的包都在JDK里面导致太大,而且很多情况下大部分包都用不到,所以通过模块划分,减小体积吗

Re: 不是太懂,请见谅 by Zhefu Zhou

直觉以为这些更改与具体目的无关,你看其实所有的类和资源都没有删除而只是更换了访问和存储的形式。我认为此举只是为了调整架构,为接下来5年的演化打基础。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

4 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT