我在哪里可以找到用于下载JDK 1.5的完整源代码?我无法在oracle网站上找到确切的链接;所提供的链接只能圈出。我在哪里可以找到JDK 1.5源代码?
回答
Java的名称可以应用于许多不同的组件,它们一起工作。它可能对某些人来说意味着“Java虚拟机”,对其他人来说可能是“Java语言规范”,对许多人来说可能是“Java编译器”,对许多人来说可能意味着“Java语言库”。
如果您希望Java5的Java虚拟机(JVM)的源代码为it is available;但不在开源许可下。 Java的第一个“开放源代码”副本与“Java 6”一起发布。如果您需要Java5源代码,则需要注册一个“Java研究员许可协议”,以便您访问JVM的源代码(至少是Java5)。在编写Java5环境的代码时,拥有JVM的源代码是完全没有必要的。
如果您需要Java语言规范Java5的源代码it is a text document (typically published as a book or on-line set of web pages)。尽管它可以让你理解编译器在某些情况下是否应该抱怨错误,但不需要编写Java5环境的程序。
如果你想Java5编译器,it can be downloaded in the oracle archives of old releases of the Java development toolkit。如果您想为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)。
我看不到在这个链接中的源代码只有二进制文件... – hakish
你可以得到的所有源代码都在JDK中。 –
不要忘记Java 5.0是如此古老,它在Oracle收购Sun之前已经是生命的终结了。它还会对OpenJDK进行预约,因此唯一可用的源代码位于JDK中。 –
Java 1.5中是不是开源。引用维基百科:
2006年11月13日,Sun根据GNU通用公共许可证(GPL)的条款发布了许多Java作为免费和开源软件(FOSS)。 2007年5月8日,Sun完成了这一流程,除了Sun不拥有版权的一小部分代码之外,Sun还使用免费软件/开放源代码分发条款提供了所有Java核心代码。
据我记得有可能获得用于研究目的的源代码(我们的大学可以通过与Sun的特别协议访问源代码),但我认为这不可能从Oracle获取它。
在开源之前,有几个免费的JVM和核心类的实现。以http://en.wikipedia.org/wiki/Free_Java_implementations为例。
- 1. 我在哪里可以看到Sun JDK的源代码?
- 2. 我在哪里可以获得Android 1.5(蛋糕)源代码?
- 3. 我在哪里可以找到Vigenere密码的Java源代码?
- 4. 我可以在哪里找到并浏览JDK 7源文件?
- 5. 我在哪里可以找到FlexMonkium源代码?
- 6. 我在哪里可以找到springloaded-core jar的源代码?
- 7. 我在哪里可以找到itertools.combinations()函数的源代码
- 8. 我在哪里可以找到C++的generic.h的源代码?
- 9. 我在哪里可以找到TextView.setText(..)方法的源代码?
- 10. 我在哪里可以找到JDK6源代码库?
- 11. 我在哪里可以找到系统调用源代码?
- 12. 我在哪里可以找到Mnesia源代码?
- 13. 我在哪里可以找到Singular(AngularJS for GWT)的源代码?
- 14. 我在哪里可以找到el-ri-1.0.jar的源代码?
- 15. Git - 我在哪里可以找到实现.gitignore的源代码
- 16. 我在哪里可以找到android的firefox源代码?
- 17. 我在哪里可以找到TagLib#库的源代码?
- 18. 我在哪里可以找到RSA的官方源代码?
- 19. 我在哪里可以找到JavaEE软件包的源代码?
- 20. 我在哪里可以找到“暂停”工具的源代码?
- 21. 我在哪里可以找到J2ME的源代码?
- 22. 我在哪里可以找到NServicebus 2.1源代码?
- 23. 我在哪里可以找到Java数组的源代码?
- 24. 我在哪里可以找到gitk的源代码?
- 25. 我在哪里可以找到Ubuntu ARM init的源代码?
- 26. 我在哪里可以找到JBoss servlet api的源代码
- 27. 我在哪里可以找到System.Numerics.BigInteger的源代码?
- 28. 我在哪里可以找到JavaScript本机函数源代码?
- 29. 我在哪里可以找到httpsURLConnection的源代码?
- 30. 我在哪里可以找到libcrypto ++的源代码?
感谢您的详细回复,我只是一个业余爱好者,希望看到源代码java.lang和其他基本包来淬火我的好奇心..我应该检查Java档案? :)! – hakish
如果你只是想看看“java.lang”的东西,看看Java6。至少可以在没有限制性许可的情况下使用。另外,要认识到它大部分都是用Java编写的,并有许多关键的“原生”背景。您需要知道您的JNI才能读取它,而本机实现依赖于JVM实现。代码的这些部分处理必须完成的事情,但不会在语言中暴露出来(像malloc'ing内存和以允许自动垃圾收集的方式注册类)。有趣的东西;对典型项目很少有用。 –