思诚科技 seecen LOGO
咨询热线:0791-87557233
  首页 |   Java EE  
关于思诚
关注官方微信

驯服Tiger之JDK 5.0 源代码许可

来源:网络    更新时间:2014-12-3



  Sun最近通过Sun社团源代码许可(CommunitySourceLicense,SCSL)和Java研究许可(JavaResearchLicense,JRL)发布了JDK5.0的源代码。这个月,Tiger的专栏作家JohnZukowski从新发布的细节中抽空出来,概述了许可的条款以及为开发人员提供了哪些源代码访问。他还简要介绍了一下J2SE6.0发行版Mustang令人惊奇的早期访问。

  Sun发布JDK5.0源代码的决定,除了提供对公共类的访问之外,还提供了对非公共类的访问,这给了开发人员更深入了解最新发行版幕后内容的机会——前提是您不介意遵守许可条款。我不会卷入所谓“Sun是不是应该把Java平台开源”的争论,而是向您展示如何得到源代码并讨论两个许可选项:Sun社团源代码许可(SCSL)和Java研究许可(JRL)。我还会简要地讨论6.0Mustang二进制和源码的早期访问快照版本。

  标准源代码下载

  Java平台公共API的源代码和Javadoc中提及的所有类都属于标准JDK交付的一部分,您可以访问它们。为访问这些源文件,您需要将它们与JDK下载安装在一起。如果给出大小(18MB),那么JDK下载是可选的,所以您必须确保在下载的时候选择了该下载。安装之后,只需把文件解压到子目录中即可,如清单1中演示的那样。

清单1.返回1.4默认的Steel主题
cdc:\jdk1.5.0mkdirsrccdsrcjarxvf..\src.zip

  现在,如果您在开发代码的时候遇到问题,得到意外的堆栈转储,您就可以查看系统类的源代码,看看是为什么。例如,用null参数调用StringBuffer构造函数是不对的。为什么呢?查看源代码,就了解到,构造函数试图取得string的长度。虽然在Javadoc中有文档说明,StringBuffer构造失败会抛出NullPointerException异常,但是查看源代码可以让您知道为什么会失败。因为您不能对null对象指针调用length方法。

  注意:源文件保存为具有Unix换行符,如果用记事本(Notepad)这样的编辑器查看源代码,阅读起来会很困难,因为文件中没有回车符。如果您想转换这些文件,那么JavaWorld的JavaTip64仍然会有用。

  JDK5.0源代码包
 
  JDK没有提供平台的全部源代码。提供了java.*和javax.*包中的公共类,但是没有提供sun.*或虚拟机中的公共类。JDK5.0源代码包就是弥补这个不足的。如果您能够遵守其中任何一个许可的条款(稍后介绍),那么您就可以访问平台(允许Sun公开的平台)的完整源代码。这两个许可许可了一些东西,但是它们也有自己的再发布限制。您可以从Java2PlatformStandardEdition5.0页面访问源代码(请参阅参考资料)。只要单击您要遵守的许可的下载链接,阅读并接受许可条款,然后单击第一个下载链接,就会显示组的文件列表。这时,有两个下载链接,一个是55MB的zip格式的源代码文件,另一个是安全性文件(例如加密供应者),只有不到1MB。下载源文件,解压后就可以研究了。还有另外一个2MB的二进制文件下载,它包括共享库、字体和图片。有它更好,没有也可以。

  Sun社团源代码许可

  最新的J2SE发行版中引入的Sun社团源代码许可(SunCommunitySourceLicense,SCSL),针对研究社团做了少量修改。该许可在5.0中基本上没有变化。

  SCSL不是一个开源许可,但是允许您自由地访问源代码,前提是您可以接受许可(而且在授权国家居住)。但是,根据您处理许可的方式,您可能要付费。虽然不是每个人都同意该许可,而且我也不想对它发表评论,Sun的立场是它可以防止平台标准分叉。无论如何,这个许可确实让您可以访问整个平台,这比起不能访问来说当然有优势。

  • 上一篇文章:

  • 下一篇文章:
  •  

    0791-87557233

    重视每个来电 珍惜您的时间
    思诚者开发沙龙
    江西思诚科技有限公司  赣ICP备17006097号  CopyRight©2014 - 2018