在哪里可以找到JDK1.5的完整源代码下载?我在甲骨文网站上找不到确切的链接;所提供的链接只在圆圈中出现。
Java这个名称可以应用于许多协同工作的不同组件。对一些人来说,这可能意味着"Java虚拟机",对另一些人来说意味着"Java语言规范",对许多人来说意味"Java编译器",对相当多的人来说意味是"Java语言库"。
如果您想要Java5的Java虚拟机(JVM)的源代码,它是可用的;但是,不是在开源许可下。Java的第一个"开放源代码"副本与"Java6"一起发布。如果您想要Java5源代码,您需要注册"Java研究人员许可协议",该协议为您提供了访问JVM源代码的权限(至少Java5)。在为Java5环境编写代码时,完全没有必要拥有JVM的源代码。
如果您想要Java5的Java语言规范的源代码,它是一个文本文档(通常以书籍或在线网页集的形式发布)。虽然它可以让你理解编译器在某些情况下是否应该抱怨错误,但同样没有必要为Java5环境编写程序。
如果您想要Java5编译器,可以在Java开发工具包旧版本的oracle档案中下载。如果您想为Java5编写程序,下载并使用此产品通常是开发Java5程序的最佳实践。或者,您可以配置兼容的编译器(Java6/Java7)来发出Java5代码。
如果您想要Java5语言库,它们包含在Java5开发工具包中。Java6和Java7开发工具包提供的语言库努力与Java5源代码兼容;然而,较新的库也包括较新的特性和操作,而现有的Java5虚拟机将无法参考这些特性和操作。同样,有一些技术可以安全地使用向后兼容的Java版本(6/7);然而,如果他们的开发基于Java5开发工具包,就不需要格外小心。根据Java研究许可协议,语言库的"源代码"包含在JVM的源代码中,SUN被允许包含此类源代码。
虽然SUN已经以可以使用Java5自由分发的方式从其他公司许可了许多技术,但SUN并不一定完全拥有Java5中的所有技术。因此,即使在Java研究人员许可协议下,一些源代码也不可用(尽管编译的库是可用的)。开源项目(如OpenJDK)很快就用开源库实现了这些缺失的"漏洞",从而获得了一个功能齐全的开源Java堆栈;但是,这是Java6+(而不是Java5)。
Java 1.5不是开源的。引用维基百科:
2006年11月13日,Sun根据GNU通用公共许可证(GPL)的条款,以自由和开源软件(FOSS)的形式发布了大部分Java。2007年5月8日,孙完成了这一过程,根据自由软件/开源分发条款,除了孙没有版权的一小部分代码外,Java的所有核心代码都可用。
据我记忆所及,可以获得用于研究目的的源代码(我们大学与Sun签订了特殊协议,可以访问源代码),但我认为不可能从Oracle获得。
在开源之前,JVM和核心类有几个免费实现。看看http://en.wikipedia.org/wiki/Free_Java_implementations例如。
访问oracle归档