BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Java 9将会从默认类路径中去除CORBA

| 作者 Abraham Marín Pérez 关注 9 他的粉丝 ,译者 薛梦迪 关注 0 他的粉丝 发布于 2016年6月15日. 估计阅读时间: 2 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

作为模块系统的一部分正在进行的迁移,CORBA和其他的Java EE模块在Java 9更新时将不会包含在默认的类路径中。这些模块依然能够获取,但是开发者们需要使用特定的命令行指令才能够使用它们。这个变化只会影响到非模块化的、以Java 9为目标系统的应用,因为模块化的应用已经需要详细指出它们依赖的模块。

正如“模块系统的情形”中解释的那样,模块化在Java 9中的附加功能不会强制开发者直接使用它们,反而,Java 9中提供了一定数量的向后兼容选项。其中一个允许在Java 9中完成传统的、非模块化的代码。其中为了它能够正常工作,非模块化的代码需要被添加至编译器,作为一个特殊的模块,叫做“未命名模块”,它默认显示了所有包含的包并且没有详述的依赖。

不幸的是,未命名模块没有任何明确的依赖关系,这会给模块分解带来很大的挑战。在一个模块化的Java应用中,正在被编译的模块会有一个明确的所需要的依赖关系清单。编译器可以使用这些信息,伴随着依赖关系中的依赖,来计算出一个图表,其中包括所有被编译模块直接或间接需要的所有模块的传递闭包。而未命名模块没有标明任何依赖,所以它不能被用于计算模块图表的根节点。

为了修正这个问题,Java 9将会使用一些默认值作为将代码编译入未命名模块的根模块。在最新的修改中,这个默认根模块已经从java.se.ee迁移到java.se,这意味着所有的Java EE扩展现在都默认不能使用了。这个修改会帮助预防包含它们自己的Java EE包实现的应用服务器中的冲突。

那些想要迁移至Java 9但是还没有做好重写他们应用每个模块系统的准备的人可以仍然将这些依赖添加回类路径,通过在编译或运行应用时使用命令行指令“-addmods ”。

查看英文原文Java 9 Will Remove CORBA from Default Classpath


感谢张龙对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的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通知我

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

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

讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT