【发布时间】:2026-01-23 19:10:01
【问题描述】:
我想看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 参考实现可从 JDK 7 项目中获得 OpenJDK 社区。p>
问:在 OpenJDK 中找到的源代码有什么区别 存储库,以及用于构建 Oracle JDK 的代码?答:是 非常接近 - 我们的 Oracle JDK 版本构建过程基于 OpenJDK 7 只需添加几部分,例如部署代码, 其中包括 Oracle 对 Java 插件和 Java 的实现 WebStart,以及一些封闭源代码的第三方组件,如 图形光栅化器,一些开源的第三方组件,比如 犀牛,还有一些零零碎碎的东西,比如额外的 文档或第三方字体。展望未来,我们的目标是 开源 Oracle JDK 的所有部分,除了我们考虑的部分 商业功能,例如 JRockit Mission Control(尚不可用 在 Oracle JDK 中),并用 开源替代方案,以实现代码之间更接近的平等 基地。”
【问题讨论】:
-
如果您想了解差异,请查看此 [post][1] [1]:*.com/questions/11547458/…
-
@Jayan 我不认为这是一个骗局。那个和我的没有关系。我不是在问 jdk 和 jre 之间的区别。更多的是关于jdk和open jdk。
标签: java