搞定JDK5.0源代码许可

开发 后端
JDK5.0源代码许可对于JDK5.0源代码研究有着很重要的意义,那么如何获得JDK5.0源代码许可呢?本文将会给你进行介绍。

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

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

标准源代码下载

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

返回 1.4 默认的 Steel 主题

  1. cd c:\jdk1.5.0 
  2. mkdir src  
  3. cd src  
  4. jar xvf ..\src.zip 

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

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

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

Sun 社团源代码许可

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

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

那么您到底可以访问到JDK5.0源代码呢?对于入门者来说,您可以访问系统资源,例如线程调度器和内存模型。如果您不喜欢现有的模型,那么您可以创建自己的。您可以测试您的假设,看看您的模型是否更好。当然,这可能就进入了 Java 研究许可(JRL)的领域。如果您想修补的 bug 已经等候了很久,但是在 Sun 的优先级列表中没有排在前面,那么您可以自己修补它,然后把补丁发回 Sun。您想自己留着补丁?当然可以,但是重新发布的修复了这个 bug 的平台会有一些限制。这时就需要许可费和兼容性测试套件了。想要创建一个干净版本的虚拟机或者库?那么背道而驰,不要赞成这个许可(即 JRL)。

Java 研究许可

Java 研究许可(Java Research License,JRL)是 Java 源代码版本许可方案的新成员。在研究社团对 SCSI 中原来的研究部分提出诸多抱怨之后,专门针对大学和研究社团创建了 JRL。如果您是大学或者研究机构的老师或研究人员,那么下载具有 JRL 的源代码是比较合适的。许可中的研究使用权力部分规定,您可以用这项技术与其他也获得许可的人进行研究,修改代码,并发表您的研究。

但是,有一些灰色区域。许可说,您可以与其他人获得许可的人共享源代码;许可还说,如果不是主要的部分,您还可以分发对象代码以及发布源代码的摘录。现在,如果您计划教授您的研究,而您的学生要为课程付费(也就是说成为了商业行为,而不仅仅是研究目的),那么您就违反了许可。如果您想要根据通过 JRL 访问搜索到的材料来教学,那么建议您最好先咨询一下法律顾问。

Mustang

Sun 最近带给我们的一个惊奇就是对 J2SE 6.0(代号为 Mustang)的早期访问。(为了满足您的好奇心,透露一下 7.0 的代号为 Dolphin。)J2SE 的下一版本预计在 2006 年春发布,在 JRL 许可之下,您既可以访问该版本的源代码,也可以访问它的二进制代码。该下载中缺少 Javadoc,您必须在构建 JDK 之后自行构建它。

值得花时间现在研究 Mustang 吗?这取决于您的意向。从纯研究的角度来说,这次发布的版本当然是份大礼。如果您需要计划公司未来的产品战略,而许可条款与您的意向又不冲突,那么还是值得调查一下的。对于本栏目的普通读者来说,如果您想在事情完全准备好之前了解它,而且不介意运行一些还没有经过完全测试,可能还不是全功能的代码,那么您就下载研究它吧。反正我知道我是准备进行研究的。

结束语

对于JDK5.0源代码许可而言,如果您居住在一个已授权可以接收源代码的国家,那么现在得到 JDK 源代码比平台以前的发行版容易得多了。过去,您必须打印协议,物理地签署协议,并传真回 Sun。之后您才能访问一个具有源代码下载权的私有 Web 站点。现在,只需要用鼠标指向并单击,单击,单击,就能得到源代码。只要许可条款与您的意向不冲突,而且您是属于比较好奇的那类人,那么源代码就是值得研究的好东西,可以学习更多有关 Java 工作原理的内容。对于 Mustang 来说,看看这个平台未来要走向何方会更有趣。

【编辑推荐】

  1. JDK1.5中新的语言特征浅析
  2. 在JDK7 b50中将实现正则表达式命名捕获组
  3. JDK日志框架介绍及其主要功能浅析
  4. JDK日志框架之自定义日志Formatter
  5. JDK日志框架之实例结合STAF浅析
责任编辑:仲衡 来源: CSDN博客
相关推荐

2009-07-09 11:02:37

JDK5.0内置工具

2009-07-08 17:33:46

JDK5.0内置工具

2009-07-07 17:34:15

collectionJDK5.0

2014-11-06 09:31:20

Android 5.0Google

2011-07-28 09:36:14

VMware vSphvmware

2009-04-17 09:20:34

微软CCI开源许可

2021-04-08 10:10:46

JavaSimpleDateFList接口

2017-11-29 08:59:35

Facebook谷歌IBM

2021-07-06 05:04:50

MDK源代码文件

2021-12-30 12:30:01

Java注解编译器

2021-01-27 10:00:10

SSPL开源许可证OSI

2023-11-27 09:35:59

开源许可证

2021-04-13 08:25:12

测试开发Java注解Spring

2013-12-02 14:48:17

开源许可协议开放代码

2020-11-13 13:05:27

Java开发代码

2022-03-30 15:33:02

甲骨文JDK软件许可

2009-03-20 13:40:15

JDK线程并发

2013-05-16 09:36:07

Java甲骨文Java版本

2011-02-23 14:54:58

FileZilla

2011-02-23 14:16:43

FileZilla
点赞
收藏

51CTO技术栈公众号