Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我们有两个版本的Java?_Java - Fatal编程技术网

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

为什么我们有两个版本的Java?,java,Java,为什么我们有两个版本的Java? Oracle的jdk和OpenJDK的jdk 为什么会这样 OpenJDK仅适用于Linux 在维基百科上,我发现 Java是开源的。但是,我在 神谕JDK说一切都受到限制 OpenJDK正试图通过给你自由选择的机会来重塑方向盘(你可以使用酷炫的OpenJDK JVM或主流的Oracle JVM) 如果有那么酷的东西,显然它只适用于linux 那个问题超出了范围,而且我自己也不确定 有许多java发行版。oraclejdk只是一个参考版本,但也存在类似openj

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

  • Oracle的jdk和OpenJDK的jdk
  • 为什么会这样 OpenJDK仅适用于Linux
  • 在维基百科上,我发现 Java是开源的。但是,我在 神谕JDK说一切都受到限制
  • OpenJDK正试图通过给你自由选择的机会来重塑方向盘(你可以使用酷炫的OpenJDK JVM或主流的Oracle JVM)

  • 如果有那么酷的东西,显然它只适用于linux

  • 那个问题超出了范围,而且我自己也不确定


  • 有许多java发行版。oraclejdk只是一个参考版本,但也存在类似openjdk的其他版本。例如,IBM有自己的产品。虽然它们都共享一组必需的特性,但每个特性都超出了这一范围,并实现了自己的专有特性集。Oracle JDK的一部分不是开源的,它需要对嵌入式设备进行许可,这就是开放JDK存在的原因——提供完全免费的Java实现。现在,Java和“规范”一样是开源的,Oracle JDK的大部分也是开源的。其他公司只要通过Oracle认证兼容性的测试,就可以自行实现。不过,Oracle拥有Java商标,我认为它有能力认证其他实现。谷歌和他们的Java实现(与现在已经不存在的ApacheHarmony一样)之间存在争议。
    至于Windows上的开放JDK,可以通过构建源代码来实现(就像did一样)。二进制文件不存在可能是因为没有需求。只有Linux对专有软件施加了限制。

    这很复杂。:)需要知道的重要一点是,只有一个Java规范。您提到的是it的不同实现,标准的Oracle JDK和OpenJDK并不是唯一这样的实现。但基本上,当Java平台的原始开发人员Sun被Oracle接管时,旧的Sun实现分为两部分:一部分变成了OpenJDK,另一部分留在Oracle。这个线程中的所有“信息”从何而来?是Sun创建了OpenJDK,以响应Java社区放弃标准JDK的封闭源代码特性的愿望。你所要做的就是去实际的OpenJDK网站阅读!两个版本的Java是什么意思?“关于Zing、Zulu和Dalvik,还有……看,我告诉过你这很复杂。”DavidConrad当然还有Jikes RVM.)巨魔发现了。但同意:)+1它与Linux捆绑在一起,特别是因为Fedora和其他发行版要求所有捆绑软件都是开放和免费的。商业Oracle JDK实现不允许这种情况。