首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rt.jar是如何为JRE1.6创建的?

rt.jar是如何为JRE1.6创建的?
EN

Stack Overflow用户
提问于 2012-07-10 22:41:57
回答 2查看 1.2K关注 0票数 2

所以这是我所做的-

我将rt.jar的内容解压缩到一个名为rt的文件夹中。然后,在rt文件夹中,我执行了以下jar命令

代码语言:javascript
复制
jar cf rt.jar *

这将创建一个jar文件,其类与原始rt.jar文件中的类相同。

但是,这两个文件的文件大小有很大不同。

代码语言:javascript
复制
Original rt.jar      -> 43.1 MB
Newly created rt.jar -> 20.6 MB

请注意,两个jar文件的解压缩内容的大小是相同的。这让我认为原来的rt.jar不是使用jar命令创建的。那么它是如何创建的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-10 22:51:58

最初的jar是用0压缩级别创建的,以减少加载类的CPU消耗。

代码语言:javascript
复制
> unzip -v rt.jar
Archive:  rt.jar
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
       0  Stored        0   0% 02-03-2012 21:20 00000000  META-INF/
    2343  Stored     2343   0% 02-03-2012 21:20 a653ef50  META-INF/MANIFEST.MF
     754  Stored      754   0% 02-03-2012 21:12 fa8ba6d9  com/oracle/net/Sdp$1.class
     350  Stored      350   0% 02-03-2012 21:12 ca729c09  com/oracle/net/Sdp$SdpSocket.class
...
票数 7
EN

Stack Overflow用户

发布于 2012-07-10 22:49:41

它可能是使用jar命令的-0选项创建的,该命令专门不应用ZIP压缩,而只是存储文件。

由于这个归档文件将被大量读取,而且按照现代标准,它非常小,为了23MB,减少的运行时开销似乎是值得的。

(在任何情况下,即使这不是严格意义上的正确,文件大小的差异也将取决于不同的压缩级别。)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11415830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档