我想看看 sun.nio.ch.SocketChannelImpl#read 函数的源代码。但是Oracle的JDK的src.zip中没有对应的源码。
我知道我可以从从http://download.java.net/openjdk/jdk6/下载的 OpenJDK 的 openjdk-6-src-b27-26_oct_2012.tar.gz 中看到它。
但这是否意味着我无法从更流行的非开放 JDK 中获取它,因为它不是开源的?或者我遗漏了一些东西,我实际上可以从 Oracle JDK 中得到它?(我不太了解 JDK 和 OpenJDK 的区别)
更新:
我不明白为什么 Oracle 没有在 src.zip 中包含所有源代码,因为可以从 OpenJDK 获得它。他们想隐藏什么?我认为,如果 src.zip 中没有任何来源,则意味着 Oracle 为此使用了“一些封闭源代码的第三方组件”或“商业功能”。正确的?
引用https://blogs.oracle.com/henrik/entry/java_7_questions_answers:
" 问:在哪里可以找到源代码? 答:Java SE 7 参考实现的源代码可从 OpenJDK 社区的 JDK 7 项目中获得。
问:在 OpenJDK 存储库中找到的源代码与您用于构建 Oracle JDK 的代码有什么区别?答:非常接近——我们的 Oracle JDK 版本的构建过程是在 OpenJDK 7 上构建的,只添加了几个部分,例如部署代码,其中包括 Oracle 的 Java 插件和 Java WebStart 实现,以及一些封闭源代码的第三方第三方组件,例如图形光栅化器,一些开源第三方组件,例如 Rhino,以及一些零碎的东西,例如附加文档或第三方字体。展望未来,我们的目标是开源 Oracle JDK 的所有部分,除了那些我们认为是商业功能的部分,例如 JRockit Mission Control(Oracle JDK 中尚不可用),