我在从技术上讲,Oracle JDK和Open之间的主要区别是什么?读到
Oracle是OpenJDK的实现,不是开源的
但是JDK源代码是公开的和免费的。对啊。那么它为什么不是开源的呢?我在这里判断oracle为开放源代码可能是错误的,因为源代码可能是可用的和免费的,但是它不允许进一步修改/扩展和重新分发它,这就是为什么它不是开源的吗?
发布于 2016-09-25 08:04:40
但是Oracle源代码是公开的和免费的。对吗?
严格地说,不。
1) Oracle JDK的完整源代码不可用。JDK源代码ZIP文件只包含公共类库API的源代码。不是一些“内部”类。不是JDK / JRE工具链。而不是JVM运行时本身;例如JIT编译器、GC实现、验证器等。
2)对于可用的子集,您需要接受Oracle许可证。
3)可用的源代码在版权标题中说,它是Oracle (或Sun)专有的。
那么它为什么不是开源的呢?
请参见上面的。
也许我错了,因为源代码可能是免费的,但是它不允许进一步修改/扩展和重新分发它吗?这就是为什么它不是开源的原因吗?
这就是原因之一。
开源并不仅仅意味着源代码是免费的。它也可以得到,没有不必要的限制,你可以用它做什么。
(如果您想要Oracle JDK的完整源代码,那么它就不是免费的,而且条款和条件非常严格。)
相比之下,OpenJDK代码库由GPLv2覆盖(除了"Classpath异常“,这说明了为使用OpenJDK JVM /类库而构建的应用程序不受GPL的约束)。作为OpenJDK一部分的所有内容都可以作为源代码.不需要你签任何东西。
当然,GPL限制了您可以做什么,但这些限制是为了使代码免费(如在自由中)和保护最终用户的权利而设计的。
发布于 2016-09-25 08:04:02
OpenJDK在GPL v2许可下是开源的,而OracleJDK使用的是Oracle二进制代码许可协议(更多介绍这里和这里)。
当您说源代码是免费的,但不允许进一步修改和重新分发时,这是正确的。
https://stackoverflow.com/questions/39684598
复制相似问题