2014-09-10 32 views
4

为什么我们有两个版本的Java?为什么我们有两个版本的Java?

  1. 来自Oracle的jdk和来自OpenJDK的jdk。
  2. 为什么它是 OpenJDK仅适用于Linux?
  3. 而在维基百科上,我发现 Java是开源的。但是,我发现 ORACLE JDK内的版权信息说一切都受到限制?
+3

这很复杂。重要的是要知道,只有一个Java规范。你提到的是它的不同实现,标准的Oracle JDK和OpenJDK不是唯一的这种实现。但基本上,当Sun(原Java平台的开发人员)被Oracle接管时,旧的Sun实现分成两部分:其中一个成为OpenJDK,另一个成为Oracle。 – biziclop 2014-09-10 15:23:37

+0

谢谢biziclop。 – 2014-09-10 15:29:16

+1

这个线程中的所有“信息”从哪里来? Sun创建OpenJDK是为了响应Java社区的愿望,放弃标准JDK的封闭源代码性质。所有你需要做的是去实际的OpenJDK网站和阅读! http://openjdk.java.net/ – Gimby 2014-09-10 15:41:09

回答

5
  1. 打开JDK正试图通过给你的选择(可以使用凉的OpenJDK JVM或主流甲骨文之一)

  2. 自由推倒重来如果事情是很酷很显然,这只是为Linux的

  3. 这个问题是出SO范围,除了我不知道自己...

+4

+ 1,我喜欢第二点! – 2014-09-10 15:25:12

+1

巨魔发现。但同意:) +1 – 2014-09-10 15:25:29

+2

它专门与Linux捆绑在一起,因为Fedora和其他发行版要求所有捆绑软件都是开放且免费的。商业化的Oracle JDK实现不允许这样做。 – user2254180 2014-09-10 15:36:14

2

钍有很多java发行版。 Oracle JDK只是参考之一,但其他一些像Open JDK存在。例如,IBM拥有自己的产品。虽然他们都拥有强制性功能,但每个功能都超出了这个范围,并实施了自己的专有功能。部分Oracle JDK是而不是开放源码,它需要嵌入式设备的授权,这就是Open JDK存在的原因 - 提供完全免费的Java实现。现在,Java在“规范”中是开源的,大部分Oracle JDK也是如此。只要他们通过了Oracle的兼容性测试,其他公司就可以自行实施。尽管如此,Oracle拥有Java商标并且我认为它具有对其他实现进行认证的能力。与Google和他们的Java实现(与现在已经停止的Apache Harmony一样)的纠纷存在于某处。 至于Windows上的Open JDK,可以通过构建源代码来完成(例如this guy here)。二进制文件不存在可能是因为没有需求。只有Linux才对专有软件施加限制。

相关问题