你真的了解 OpenJDK 吗?
上周因为Java 16的发布,我们推了两篇关于Java 16的解读,以及为什么大家还要用Java 8的思考。有不少读者留言说到了openjdk,问了很多关于此的关系。对于JDK的开源体系,还是有很多开发者的认识非常模糊。所以,小编今天就带大家一起了解下有关OpenJDK 的一些常见的疑问及官方问答。
如果上两篇文章还没有读过的,也可以通过下面的链接直达:
关于开源
Oracle对于支持Java开源的计划是什么?
Oracle打算继续支持开源和开放标准。Oracle一直致力于为最终用户提供选择、灵活性和较低的计算成本,而且无论是在开源软件还是非开源软件的环境中,都不会过分强调使用开放标准的重要性。
Oracle实行开源开发吗?
Oracle正在领导或参与大量的开源项目。请看http://oss.oracle.com有关Oracle的开放源代码和更多信息,请参阅。
怎么能进一步了解Oracle对开源和开放标准的看法?
当然可以,通过http://www.oracle.com/technetwork/oramag/2010/o40interview-086226.html可以看到Oracle首席企业架构师Edward Screven关于开源和开放标准重要性的采访。
Oracle 对于OpenJDK的计划
Oracle对OpenJDK社区有什么计划?
作为OpenJDK项目的一部分,Oracle计划与Java社区一起继续开发下一版本的Java SE平台。OpenJDK是Oracle计划参与的唯一一个开源Java SE实现。
Oracle是否致力于OpenJDK?
对。Oracle仍然致力于将OpenJDK作为最佳的开源Java实现,我们将继续改进OpenJDK并欢迎外部贡献者。
能详细介绍一下Oracle对OpenJDK的计划吗?
JavaOne 2010 通过发布两个版本加速了Java Se的可用性,一个在2011年,一个在2012年。相应的OpenJDK版本将继续作为the Oracle Java Development Kit (JDK) 7 和 JDK 8 的基础。有Oracle计划的更多信息,可以访问http://blogs.oracle.com/henrik/2010/10/java_roadmap_from_javaone_2010.html.
什么是JDK7?
JDK7是Oracle用于实现下一版本JavaSE 平台的。OpenJDK开源社区中的JDK7项目是Oracle与更广泛的Java和开源社区一起致力于实现JavaSE 7 JSR 中指定的特性的地方。
JRockit会怎么样?它会成为OpenJDK的一部分吗?
Oracle工程师目前正在努力将 Oracle Java HotSpot Java Virtual Machine (JVM)和the Oracle JRockit JVM 合并到一个聚合产品中,该产品充分利用了这些市场领先的实现的最佳特性。Oracle计划将组合的结果贡献给OpenJDK。
Oracle会改变OpenJDK许可模式吗?
不会。OpenJDK社区在Oracle以及其他公司、研究人员和个人的贡献下继续蓬勃发展,基于GPL的许可模式是这一成功的一个重要部分。Oracle没有改变的计划。
听说IBM要加入OpenJDK?
Oracle和IBM在2010年10月宣布,将在OpenJDK社区合作开发领先的开源Java SE实现,并使OpenJDK社区成为开源Java SE开发的主要场所。Oracle和IBM将支持Java One 2010之前提出的OpenJDK开发路线图,该路线图加快了Java SE在整个开源社区的可用性。Oracle和IBM之间的合作建立在OpenJDK作为Java SE主要开发平台的成功,以及Oracle和IBM对Java社区的长期贡献的基础上。有关路线图和Oracle计划的更多信息,请访问http://blogs.oracle.com/henrik/2010/10/java_roadmap_from_javaone_2010.html.
关于OpenJDK用户和贡献者
谁使用OpenJDK?
主要的Linux发行版,如Ubuntu、Fedora或Red Hat Enterprise Linux,都提供OpenJDK作为默认的Java SE实现。此外,Eclipse Community Survey 2010发现,虽然大多数Java开发人员使用Oracle的商业JDK版本,但参与调查的21%的开发人员使用OpenJDK。最后但并非最不重要的是,许多学术机构发表研究报告都是基于OpenJDK。
谁对OpenJDK有贡献?
大多数OpenJDK贡献者都是受雇于Oracle等公司的工程师。此外,OpenJDK社区还展示了学术界、开源操作系统发行版开发人员以及渴望贡献的个人软件开发人员的强大实力。Oracle没有改变贡献模式的计划,并乐于接受新的贡献者。为了学习如何对OpenJDK做出贡献,请参见http://openjdk.java.net/contribute/。
为什么Oracle要参与OpenJDK?
Oracle致力于使用开源模型开发JDK代码库。Oracle致力于这种工作方式,因为它可以通过降低参与的困难来形成和引入技术发展的最佳想法。
Oracle是否欢迎新的贡献者加入OpenJDK?
当然肯定,但是要准备做很多的学习!进入这个项目的一个好方法是订阅一个关于自己感兴趣的主题的邮件列表,观看讨论和评论以了解在该领域工作的开发人员的基调,然后开始审查其他OpenJDK社区成员提出的补丁。
兼容性
Oracle是否将Java SE 6 TCK 提供给OpenJDK社区?
对于满足OpenJDK TCK许可协议要求的实现,在一致性组的OpenJDK网站上记录了获取TCK的过程:http://openjdk.java.net/groups/conformance/JckAccess/index.html.
如何测试基于OpenJDK的实现是否与Java SE兼容?
要测试实现与Java SE规范的兼容性,需要向Oracle申请以获得对测试兼容性工具包(TCK)的访问权。Oracle通过各种商业和非商业协议提供Java SE TCK。如果用户的实现满足OpenJDK社区TCK许可协议的条件,那么可以根据这些条款请求访问JCK。
通过OpenJDK-TCK许可协议获得Java SE 6 TCK 的组织和个人列表是否可用?
是的,在 http://openjdk.java.net/groups/conformance/JckAccess/jck-access.html.
我可以使用OpenJDK作为基础来创建完全满足Java SE 6 TCK 兼容性要求的开源构建吗?
对。第一个这样的构建是基于OpenJDK6项目中发布的源代码的,发布于2008年。
对OpenJDK的贡献
Oracle是否计划改变开发人员参与OpenJDK的方式?
不。OpenJDK项目继续接受现有贡献者协议下的捐款,并接受相同条款下的新贡献者。目前还没有改变参与模式的计划。
是否应该继续讨论自己在开放JDK中的项目中的想法?
当然!如果用户希望OpenJDK开发人员了解自己的想法,请花一些时间找到最合适的OpenJDK项目,以将其引入并确保访问此页面,该页面描述了如何提供一般性的贡献。许多开发人员为OpenJDK和Oracle中的项目提供了宝贵的想法,希望这些想法能够继续下去。
在什么条件下可以参加OpenJDK邮件列表讨论?
为了参与OpenJDK邮件列表讨论,用户需要订阅自己想要讨论自己的想法的邮件列表。对邮件列表的参与受OpenJDK网站使用条款的约束。
如果用户不在Oracle工作,可以参加OpenJDK吗?
当然,用户可以在与其他贡献者相同的条件下参与。详情可见:http://openjdk.org/contribute
用户能否继续讨论OpenJDK邮件列表中的错误修复和功能增强?
是的,Oracle欢迎每个人的参与。
许可
OpenJDK发布的开源许可证是什么?
GPL v2用于几乎所有的虚拟机,GPL v2+类路径异常用于类库和虚拟机中公开公共API的那些部分。
如何知道哪个许可证适用于OpenJDK中给定的源代码文件?
每个源代码文件都有单独的许可证-请查找包含许可证信息的版权头。
为什么不使用不同的开源许可模式呢?
OpenJDK创建时,它采用了当时最流行的开源VM许可模式。多年来,许可模式为项目提供了良好的服务,确保了项目的稳定增长和采用,同时最大限度地降低了专有分叉和碎片化的风险。
可以下载OpenJDK源代码吗?
当然可以,http://download.java.net/openjdk/jdk6 和 http://download.java.net/openjdk/jdk7
能用它做什么有什么限制吗?
OpenJDK是在一个众所周知的开源许可模型下发布的,它对用户运行OpenJDK的能力没有任何限制。请查看OpenJDK项目网站的法律部分,了解用户的权利和义务范围。
用户能在OpenJDK邮件列表上获得具体的法律建议或法律问题的答案吗?
一般来说,没有。OpenJDK邮件列表用于围绕特定OpenJDK项目开发的技术工作。
JDK 7 & JDK 8
OpenJDK构建中的特性是否也可以在Java SE的其他实现中使用?
Java SE的其他兼容实现包含JCP中为平台定义的特性,因此它将取决于Oracle向Java SE专家组建议的哪些特性被接受以包含在平台中。或者,这可能取决于特性本身是被判断为特定于实现的(比如性能增强),还是所有实现都希望包含的特性(比如新的开发人员API)。
Java开发冻结了吗?
绝对不是!Oracle工程师和OpenJDK社区正忙于JDk7以及JDk8项目,如Lambda项目和Jigsaw项目。JDk7早期访问版本:http://jdk7.java.net。
Java编程语言还会继续发展吗?
对。Oracle正积极致力于主要的语言和平台改进,比如Lambda项目、Coin项目、模块化、并行库等等。自收购以来,Oracle加大了在这些领域的投资。
用户可以使用OpenJDK构建来试验动态字节码指令之类的新特性吗?
当然。用户可以按照构建说明自己构建OpenJDK二进制文件,也可以节省时间并从中获取最新JDk7构建的二进制快照版本:http://dlc.sun.com.edgesuite.net/jdk7/binaries/。
用户想在自己的产品代码中使用即将推出的JDk7特性。可以依赖JDK7二进制快照版本的所有特性来进入最终版本吗?
不一定:虽然jdk7二进制快照发行版包含许多特性,可以从更广泛的Java开发人员那里获得反馈,但并非所有这些特性都可以进入最终发行版,这取决于开发人员的反馈以及其他方面。换句话说,如果用户喜欢一个特性,请告诉开发者-正面反馈至少和负面反馈一样受欢迎!
Oracle JDK 和 OpenJDK
OracleJDK是基于OpenJDK的吗?
对。OracleJDK是基于OpenJDK的源代码。此外,它还包含封闭源代码组件。最终的结果是根据二进制代码许可证授权的。
什么是二进制代码许可证?
它是Sun用于JDK和JRE(以及许多其他Java产品)的许可证。用户必须在下载/安装Java之前接受许可证。可以从http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u21-license-159167.txt看到例子
下载OpenJDK需要多少钱?
Oracle在开源许可模式下提供OpenJDK源代码。它既是免费的,又是免费的(如在freedom中)软件。
OpenJDK难道不让其他JavaSE实吗?
不,Java用户可以从多个供应商在各种商业模型下提供的兼容JavaSE实现的选择中获益。不同的兼容JavaSE实现在诸如调优到不同的体系结构、性能、工具和部署等方面竞争。
往期推荐