Oracle JDK不是开源项目吗?

sco*_*les 5 java open-source

我在技术上读到了Oracle JDK和Open JDK之间的主要区别是什么?该

"Oracle JDK是OpenJDK的一个实现,并不是开源的"

但JDK源代码是公开可用且免费的.对 .那怎么来不开源呢?可能我在判断oracle JDK是开源时错了,因为源代码可能是免费的但是不允许修改/扩展和重新分发它,这就是为什么它不是开源的?

Ste*_*n C 8

但[Oracle] JDK源代码是公开可用且免费的.对?

严格来说,没有.

1)Oracle JDK的完整源代码不可用.JDK源代码ZIP文件仅包含公共类库API的源代码.不是一些"内部"类.不是JDK/JRE工具链.不是JVM运行时本身; 例如JIT编译器,GC实现,验证器等.

2)对于可用的子集,您需要接受Oracle许可证.

3)可用的源代码在版权标题中表示它是Oracle(或Sun)专有的.

那怎么来不开源呢?

往上看.

可能是我错了,因为源代码可能是免费的,但是不允许进一步修改/扩展和重新分发它,为什么它不是开源的呢?

这是一个原因.

开源并不仅仅意味着源代码是免费的.它也可以在没有不当限制的情况下使用它.

(如果您需要Oracle JDK 的完整源代码,那么它不是免费提供的,条款和条件非常严格.)


相比之下,OpenJDK代码库由GPLv2覆盖(带有"类路径异常",它阐明了构建使用OpenJDK JVM /类库的应用程序不受GPL约束.)OpenJDK的所有内容都可以作为源代码使用.代码...没有你签署任何东西.

当然GPL限制你可以做什么,但这些限制旨在使代码免费(如在自由中)并保护最终用户的权利.