Oracle JDK 和 OpenJDK 之间的区别

2024-01-08

注意:这个问题来自 2014 年。从 Java 11 OpenJDK 和 Oracle 开始 JDK 正在趋同。

Oracle 和 OpenJDK 之间有什么重要区别吗?

例如,垃圾收集和其他 JVM 参数是否相同?

两者之间的 GC 工作方式是否不同?


OpenJDK 和 Oracle JDK 目前均仅由 Oracle 创建和维护。

OpenJDK 和 Oracle JDK 是通过 TCK(Java 技术认证套件)的相同 Java 规范的实现。

大多数 JDK 供应商都是在 OpenJDK 之上编写的,通过对组件进行一些调整(主要是替换许可的专有部件/替换为仅适用于特定操作系统的更高性能项目)组件,而不会破坏 TCK 兼容性。

许多厂商实现了Java规范并获得了TCK的通过。例如,IBM J9、Azul Zulu、Azul Zing 和 Oracle JDK。

几乎所有现有的 JDK 都源自 OpenJDK。

正如许多人所建议的,许可是 JDK 之间的变化。

从 JDK 11 开始,访问长期支持 Oracle JDK/Java SE 现在需要商业许可证。您现在应该注意正在安装的 JDK,因为没有订阅的 Oracle JDK 可能会停止工作。source https://www.infoworld.com/article/3284164/java/oracle-now-requires-a-subscription-to-use-java-se.html

Ref: Java虚拟机列表 https://en.wikipedia.org/wiki/List_of_Java_virtual_machines#Proprietary_implementations

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle JDK 和 OpenJDK 之间的区别 的相关文章

  • null != Something 和 Something != null 之间的区别

    之间有区别吗null something and something null在爪哇 如果有区别 那么我应该使用哪一个 为什么 之间没有区别null something and something null 你一定在想person getN
  • 使用java进行JSON模式验证[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在为返回 JSON 对象的 java webapp 编写一些验收测试 我想验证返回的 JSON 是否针对架构进行验证 任何人都可以建议
  • 为什么我们在Java中使用接口引用类型? [复制]

    这个问题在这里已经有答案了 我即将参加第一门面向对象编程课程的期末考试 但我仍然不明白多态性的概念 假设我有一个抽象类 Vehicle 该类有一个名为 Aircraft 的子类 我的问题是 这两个代码有什么不同 Aircraft Jetpl
  • 使用Optional验证输入

    我有一个 CreateOrder 实例 其中包含一些 String Integer 和 Double 状态 当我在 JUnit 测试中为 CreateOrder 创建一个对象并将其发送出去时 我可以使用可选 API 验证 String 属性
  • 我的小程序需要客户端访问资源的权限的策略文件位置在哪里?

    我发现我必须编写一个策略文件来授予我的小程序权限 但我真的很困惑 我想编写一个小程序 它是一个地图查看器 我需要在运行我的小程序的客户端上保存图像图块以在本地访问图块 以获得安全地查看地图的速度和时间 这对用户有利 因此 小程序需要授予读
  • 将泛型与 Firebase snapshot.getValue() 结合使用的最佳实践

    TL DR 如何正确使用 Firebase DataSnapshot getValue 的泛型类 用例 我想使用 Firebase 为我的所有实体 其中一堆 实现一个通用远程数据源类 当监听数据更改时 我想从 datasnapshot 获取
  • Xstream:删除类属性

    我该如何删除类 某事 Xstream 中的属性 我使用带注释的 Xstream 我读了它的代码 发现你的类不是mapper defaultImplementationOf fieldType 它会为你添加默认的类属性 除非类属性名称为nul
  • 记录中嵌套 Spring 配置(ConfigurationProperties)

    如何绘制一张地图application yaml将嵌套属性配置为 Java 中类似的记录结构 例如 如果我们有以下 yaml foo bar something 42 baz otherThing true color blue 所需的记录
  • 如何在活动之间传递大型集合(主从流)

    背景 我正在实现一个从网络服务读取有关电影信息的应用程序 该网络服务返回有关每部电影的一些信息 标题 日期 海报网址 导演 演员等 该 Web 服务支持分页 因此电影以 100 部为一组加载 执行 这个想法是显示一个包含所有海报的网格 当用
  • 无法在 Vaadin Maven 项目上运行 mvn vaadin:compile

    当我运行命令 mvn vaadin compile 时出现此错误 INFO BUILD FAILURE INFO INFO Total time 1 039s INFO Finished at Thu Mar 20 11 35 00 CET
  • 如何在 JasperReports 中解码 html 实体

    我有一些用 JasperReports 编写的报告 它们按字面意思显示 html 实体 例如 项目符号点 使用 html 实体文本表示显示 8226 你知道有什么办法吗 In the textField设置markup属性为html 这是如
  • 如何以编程方式使用 TestNG 运行 Selenium Java 测试?

    我使用 Selenium RC 和 Java 使用 TestNG 作为测试框架 我使用 Eclipse 作为 IDE 我想非常轻松地从我自己的程序中调用 TestNG 我怎样才能做到这一点 我的以下 Java 代码运行良好 Test pub
  • 在 Android 应用程序中读取 CSV 文件

    我正在开发一个概念验证应用程序 以便我可以在我正在制作的更大的应用程序中实现该功能 我对 Java 和 Android 开发有点陌生 但希望这个问题不会太简单或太复杂 基本上 我试图从 CSV 文件中读取字符串列表 并使其可用于在应用程序的
  • 如何在运行时更改 JList 的单元格图标

    如何更改仅一个 JList 单元格的 JLabel 图标 例如 在 JList 中单击 我尝试访问使用 listCellRender 获取的 JLabel 但它不起作用 Override public void valueChanged L
  • JPA 的 commit() 方法是否使实体分离?

    我现在一直在搜索JPA实体生命周期 但现在 关于实体生命周期存在一些缺失的点 我在 stackoverflow 的一篇帖子中找到了下图 请记住该图已被投票 根据此图 当我们持久化实体时 它就变成了托管实体 好的 没问题 当我们提交时 数据会
  • 使用 lambda 或 Stream API 合并流以生成交替序列

    我有一些按预期返回 Stream 的代码 但也许可以用某种类型的 lambda 或 stream 操作替换它 而不是耗尽 a 中的迭代器while loop 它只是一种交替流中元素的方法first and second当其中一个元素耗尽时停
  • 使用 HttpClient 在 java 中进行连接池 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何使用 HttpClient 创建连接池 我必须频繁连接到同一台服务器 值得创建这样一个池吗 是否可以保持 HTTP 连接处于活动状
  • SocketTimeoutException:插入 Google 云端硬盘时读取超时 - 是否可以重试?

    如同Java Google Drive SDK File insert execute 上的 SocketTimeoutException https stackoverflow com questions 17583630 java go
  • 如何在Windows上启动JBoss AS 7.1.1?

    我是新来的JBOSS 我下载了jboss as 7 1 1 Final zip并解压缩该 zip 文件 然后我转到 bin 文件夹并双击standalone bat 但新的 cmd 窗口在 2 3 秒内打开和关闭 我尝试通过cmd启动服务器
  • onActivityresult 数据为空

    这是我的相机应用程序 我想在其中捕获图像并裁剪它 但它拍照保存在我的 myimage 目录中 但不执行裁剪功能 请我需要帮助 我是这个领域的新人 这是我的相机开源代码 Intent intent new Intent MediaStore

随机推荐

  • 如何测试某个值是否在某个范围内?

    我希望能够创建一个Range http doc rust lang org std ops struct Range html然后测试变量是否包含在该范围内 看起来像这样的东西 fn main let a 3 5 assert a cont
  • Grails 3.0.9:Spock 集成测试的 @Rollback 注释不起作用

    我目前正在为我们的项目进行一些集成 或功能性 我不是真正的 QA 而是后端开发人员 所以我可能会草率地使用术语 REST 测试 我们正在使用 Grails 3 0 9 Spock Framework 1 0 Groovy 2 4 和 Pos
  • 带有模式android的EditText输入

    我有一个 EditText 我必须接受字母数字用户输入的特定于模式和连字符的输入 会自动插入 XXX XXX XXXX 如何做到这一点 安卓有什么模式工具吗 你可以通过以下方式实现图案文本观察者 https github com zsave
  • 读取csv文件并将df写入excel并使用文本换行

    我正在尝试获得以下输出 但除标题外 所有行和列均采用文本换行 import pandas as pd import pandas io formats style import os from pandas import ExcelWrit
  • 如何在 2D 和 3D 投影之间切换

    我有一个 matplotlib 图 我希望能够在 2D 和 3D 投影之间切换 我可以从 2D 转到 3D 但我似乎不知道如何转到另一条路 例子 import numpy as np from mpl toolkits mplot3d im
  • Eclipse - 更改自动完成建议的顺序

    我看到以前有人问过这个问题 但我似乎找不到我想要的 目前 在 窗口 gt 首选项 gt Java gt 编辑器 gt 内容辅助 中 我的排序建议设置为 按相关性 然而 他们似乎仍然按字母顺序排序 例如 每当我有一个HashMap我开始打字m
  • 如何将数组元素扩展为函数的单独参数

    我有一组具有动态值的颜色 这取决于数据库 现在 函数中需要这些值 该函数仅采用像此函数那样的值 para1 para2 para3 para4 其中 param1 到 param4 是数组中的颜色值 问题是我如何以上述格式将这些值解析为该函
  • 无法使用 BigQuery Python API 设置目标表

    我最近在使用 Python API 时收到以下 BigQuery 错误 google api core exceptions BadRequest 400 无法为脚本设置co nfiguration query destinationTab
  • Text[] 数组列的表索引

    我有一个 PostgreSQL 数据库表text 数组 在其上定义的列 我使用这些列以这种方式搜索数据库中的特定记录 select obj from business where street ANY address line 1 and
  • ExtJs。设置行编辑单元格值

    我有带有 RowEditing 插件的网格 编辑器有 2 列 一列带有组合框 另一列带有禁用的文本字段 我需要在更改组合框值后更改文本字段值 我有组合框监听器 listeners select function combo records
  • 在 AWS CDK 中组织安全组规则的最佳方式

    对于我的示例 我有一个 EKS 集群 RDS 数据库和一个 VPN 客户端端点 每个端点都有自己的安全组 我希望在这些安全组之间显式定义出口 入口规则 我在RDS堆栈中定义数据库安全组 导入EKS VPNaws ec2 SecurityGr
  • SQL Server:根据参数将存储过程结果插入表中

    我有一个存储过程Test Sp它以这种方式返回数据 Id Name Age Address State Country 1 ManiS 25 aaaa bbb ccc 该存储过程返回 6 列数据 但我只想将前 2 列插入临时表中 我的临时表
  • Bootstrap 3 DatePicker - 如何在不重置选择器配置的情况下重置所选日期?

    我正在尝试重置单击按钮时选定的日期 但到目前为止我只能清除input元素 选择器上没有实际日期 下面的代码重置了所有内容 包括配置和日期 所以它显然不是我需要的 datepicker datepicker update resets eve
  • 如何从曲线拟合中提取残差

    我在 Matlab R2016a 中使用曲线拟合来找到两个数组之间的最佳拟合 一个数组表示给定纬度和经度处的某个值 另一个数组表示收集该值的日期 在使用曲线拟合工具时 我能够找到一条最佳拟合线并绘制残差 我只关心残差 但是 当我将残差导出到
  • PayPal IPN 使用 PHP 生成 HTTP 302 错误

    我有一个可以运行的 IPN 脚本 并且已经工作了一段时间 最近我开始得到一个HTTP 1 1 302 Moved Temporarily作为回应 无法确定原因 以下是与发布到 PayPal 并获取响应相关的代码 sd fsockopen s
  • 使用 SQL 查询的逗号分隔值

    我的 SQL 表如下 City Code Post Code Post Code Description 100 A1 ABC 100 C8 XYZ 100 Z3 MNO 200 D4 LMN 300 E3 IJK 300 B9 RST 它
  • 在C++中,主函数是程序的入口点,我如何将其更改为其他函数?

    有人问我一个面试问题 将 C 或 C 程序的入口点从main 任何其他功能 这怎么可能 在标准 C 中 我相信 C 也是如此 您不能 至少对于托管环境不能 但见下文 该标准规定 C 代码的起点是main 标准 c99 没有留下太多争论的余地
  • 在sql查询中传递node.js参数

    我有一些从客户端接收的日期字段 基本上 我想在我的 SQL 数据库中搜索这个日期 我应该如何在查询中传递年 月和日期 我只想用从客户端收到的新日期替换该日期 如何使用 mssql 驱动程序实现此目的 https www npmjs com
  • 在 grails/hibernate 中使用 uuid 或 guid 作为 id

    我需要将 GUID UUID 作为行的 id 列 这是为了能够在线和离线创建条目 当然合并时不会在PK上产生这些冲突 我知道我可以减轻这个问题 但我想保持简单 并且有遗留应用程序已经使用 uuid guid 来定义关系 稍后还需要双向同步数
  • Oracle JDK 和 OpenJDK 之间的区别

    注意 这个问题来自 2014 年 从 Java 11 OpenJDK 和 Oracle 开始 JDK 正在趋同 Oracle 和 OpenJDK 之间有什么重要区别吗 例如 垃圾收集和其他 JVM 参数是否相同 两者之间的 GC 工作方式是