写点什么

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

2014 年 12 月 24 日

早在 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 )关注我们,并与我们的编辑和其他读者朋友交流。

2014 年 12 月 24 日 22:562984
用户头像

发布了 1008 篇内容, 共 308.1 次阅读, 收获喜欢 272 次。

关注

评论

发布
暂无评论
发现更多内容

安全做到首位 统信UOS后激勃发

统小信uos

网络安全 操作系统

SpringBatch系列入门之Tasklet

稻草鸟人

spring SpringBatch 批处理

一文入门JVM虚拟机

Simon郎

深入理解JVM

ARTS打卡week#1

对方正在输入…

ARTS 打卡计划

LeetCode | 1. Two Sum 两数之和

Puran

Python C# 算法 LeetCode arts

洞悉MySQL底层架构:游走在缓冲与磁盘之间

arthinking

MySQL 数据库 MVCC

Vim使用总结

JDoe

vim

分布式事务 - 理论模型

Java收录阁

分布式事务

架构演变之路:为何要搞微服务架构?

arthinking

Kubernetes 微服务 dubbo SpringCloud

有的线程它死了,于是它变成一道面试题。

why技术

源码分析 jdk源码 线程池 Java 面试

初识 LeetCode

Puran

LeetCode arts

【vue-openlayers】弹窗

学习委员

html Vue 前端 openlayers ol

美国黑客曝出政府惊天内幕,看区块链如何解决!

CECBC区块链专委会

CECBC 区块链技术 民生 不可篡改 信息公开

谈谈控制感(13):为什么是旁观者清?

史方远

读书笔记 个人成长 心理学 随笔杂谈

工作的创新能力

夜来妖

产品 重新理解创业 产品经理 创新突破 创新

路漫漫其修远兮

无心水

程序员的晚餐 | 6 月 2 日 红烧鸡爪的味道

清远

美食

Java 最新的JDK14.0.1调试成功

程李文华

手机是21世纪最成功的毒品

Neco.W

学习 提升效率 工作

【译】业务转型是什么?

涛哥

业务中台 数字化转型

我们是活着,而不是活过

小天同学

个人感想 生活,随想 随笔杂谈 日常思考

带你学够浪:Go语言基础系列 - 8分钟学控制流语句

柠檬橙

golang 后台开发

什么时候去面试

escray

微信小程序开发 | 如何在小程序中使用自定义 icon 图标

彭宏豪95

微信小程序 学习 编程 前端 IT

霸榜18年,作者连续20年获得微软MVP,这本SQL书凭什么成为畅销经典

图灵社区

数据库 SQL语法 sql查询

redis持久化RDB与AOF

wjchenge

redis

Docker 搭建 Postgres + pgAdmin 环境

姜雨生

Docker DevOps postgres

同一浏览器只允许登录一个账号

brave heart

Vue 前端

奈学大数据开发工程师分享787个技术,快来收割

奈学教育

大数据

Hive底层执行引擎的深度剖析(免费)

奈学教育

大数据 hive

坚持ARTS-week2

王钰淇

ARTS 打卡计划

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

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