JDK源码包结构分类

阅读更多

        最近查看JDK源码时,无意间发现几个类在陌生包:com.sun.*、sun.*、org.*。

一.jre库包含的jar文件

        以jdk1.6为例,有resources.jar、rt.jar、jsse.jar、jce.jar、charsets.jar、dnsns.jar、localedata.jar等共10个jar文件,其中resource.jar为资源包(图片、properties文件);rt.jar为运行时包,子包结构如下图:

JDK源码包结构分类_第1张图片

 

二.java.*、javax.*包,org.*包

1.作为J2SE的API公开接口的一部分,与操作系统无关可以在所有Java平台上运行;

2.不同的jdk版本会保持兼容不会轻易变化,提供API文档及源码(src.zip)。

 

三.sun.*包

1.不是API公开接口的一部分,调用sun包的程序并不能确保工作在所有Java平台上,不同的操作系统中的实现可能不相同。

2.不同的jdk版本sun包中的类也可能不定期的变化,因此sun.*包中的类没有提供API文档及源码。

        注意:平台无关性是Java语言最大的优势之一,从技术上讲,并不能防止你的程序调用sun.*包中的类。在JDK版本的变迁当中,这些类可能会被删除或转移到其它包路径下,而且它的接口(包括名称、标签等)也很有可能发生变化,在这种情况下,即便你希望程序仅仅运行在SUN的实现平台下,你仍将承受新的版本给你的系统带来破坏的风险。总之,编写依赖于sun.*包的Java程序是不安全的,他们将变得无法移植、破坏了程序的平台无法性、也无法被JDK各版本所兼容。

 

四.sun.*包中的类如何查看源码

1.如果只是查看单个类源码,推荐一个网站进行搜索查看,可以很方便的查看API及源码,网站地址:http://www.docjar.com/

2.如果希望在Eclipse中关联源码,可以下载的Open JDK,从中获取sun源码包,下载地址:

Open JDK6:http://download.java.net/openjdk/jdk6/

Open JDK7:http://download.java.net/openjdk/jdk7/

Open JDK8:http://download.java.net/openjdk/jdk8/

 

文章来源:http://blog.csdn.net/bbirdsky/article/details/17121677

  • JDK源码包结构分类_第2张图片
  • 大小: 16 KB
  • 查看图片附件

你可能感兴趣的:(jdk,java,sun)