Oracle JDK 和 OpenJDK的区别

简介: Oracle JDK vs OpenJDK

Oracle JDK和OpenJDK是两个Java开发工具包(JDK)的发行版,它们之间有一些关键的区别。这两个发行版都提供了进行Java开发所需的工具和库,但在许可、支持和更新方面存在一些差异。

  1. 1.许可:
  • Oracle JDK:在过去,Oracle JDK是在商业许可下提供的。从JDK 11(2018年9月)开始,Oracle改变了其许可模式。Oracle JDK现在采用订阅模型,用户需要为特定版本(例如JDK 11)之后的商业支持和更新付费。
  • OpenJDK:另一方面,OpenJDK具有开源许可证(GNU通用公共许可证第2版,并带有Classpath例外),允许自由使用、分发和修改源代码。
  1. 2.支持:
  • Oracle JDK:采用订阅模型,Oracle为Oracle JDK提供商业支持和长期更新。这包括修复错误、安全补丁和其他更新,但需要付费订阅。
  • OpenJDK:OpenJDK通常由社区推动,虽然有组织和供应商提供OpenJDK版本的支持,但并不是由Oracle直接提供。支持和更新的程度可能因涉及的组织或供应商而异。
  1. 3.更新:
  • Oracle JDK:Oracle通常为其JDK提供定期更新和长期支持(LTS)版本。但是,对于JDK 11之后的LTS版本,更新和支持可能需要商业订阅。
  • OpenJDK:OpenJDK也会从社区获得定期更新,但具体发行版或供应商可能会因此而异。
  1. 4.TCK(技术兼容性测试套件):
  • Oracle JDK:Oracle JDK经过使用Java技术兼容性测试套件(TCK)的兼容性测试,以确保符合Java规范。
  • OpenJDK:OpenJDK可以从源代码编译,并经过相同的TCK测试以实现兼容性。某些发行版也可能通过了TCK测试,提供了与Java平台兼容的保证。

总之,Oracle JDK过去是商业许可下的JDK,但已转向订阅模型。另一方面,OpenJDK是开源的且免费提供。这两个发行版都可以用于Java开发,但选择可能取决于许可要求、支持需求和对开源软件的偏好。由于其开源特性和社区驱动的开发,许多开发人员和组织已转向使用OpenJDK或其他基于OpenJDK的发行版。

目录
相关文章
|
7月前
|
SQL Oracle 关系型数据库
避坑,Oracle中left join 与 (+) 的区别
避坑,Oracle中left join 与 (+) 的区别
|
7月前
|
Java 编译器 API
【面试问题】JDK 和 JRE 的区别?
【1月更文挑战第27天】【面试问题】JDK 和 JRE 的区别?
|
7月前
|
Java 编译器 Apache
JDK,JRE,JVM之间的区别和联系
JDK,JRE,JVM之间的区别和联系
121 0
|
23天前
|
Java 编译器 API
深入解析:JDK与JVM的区别及联系
在Java开发和运行环境中,JDK(Java Development Kit)和JVM(Java Virtual Machine)是两个核心概念,它们在Java程序的开发、编译和运行过程中扮演着不同的角色。本文将深入解析JDK与JVM的区别及其内在联系,为Java开发者提供清晰的技术干货。
24 1
|
1月前
|
小程序 Java 程序员
JDK 和 JRE 有什么区别
JDK(Java Development Kit)是Java开发工具包,包含编译器、调试器等开发工具,用于开发Java程序。JRE(Java Runtime Environment)是Java运行环境,包含Java虚拟机和类库,用于运行Java程序。简言之,JDK用于编写Java程序,JRE用于运行这些程序。
44 1
|
3月前
|
存储 Oracle 关系型数据库
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
从基本特性、技术选型、字段类型、事务提交方式、SQL语句、分页方法等方面对比Oracle和MySQL的区别。
685 18
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
|
2月前
|
Java
Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)
这篇文章详细分析了Java中HashMap的源码,包括JDK8与JDK7的区别、构造函数、put和get方法的实现,以及位运算法的应用,并讨论了JDK8中的优化,如链表转红黑树的阈值和扩容机制。
35 1
|
2月前
|
Dubbo Java 应用服务中间件
剖析Tomcat线程池与JDK线程池的区别和联系!
剖析Tomcat线程池与JDK线程池的区别和联系!
149 0
剖析Tomcat线程池与JDK线程池的区别和联系!
|
4月前
|
存储 安全 Java
JVM常见面试题(二):JVM是什么、由哪些部分组成、运行流程,JDK、JRE、JVM关系;程序计数器,堆,虚拟机栈,堆栈的区别是什么,方法区,直接内存
JVM常见面试题(二):JVM是什么、由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别;什么是程序计数器,堆,虚拟机栈,栈内存溢出,堆栈的区别是什么,方法区,直接内存
JVM常见面试题(二):JVM是什么、由哪些部分组成、运行流程,JDK、JRE、JVM关系;程序计数器,堆,虚拟机栈,堆栈的区别是什么,方法区,直接内存
|
5月前
|
Java 编译器 程序员
JVM常见面试题(一):JVM是什么、由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
JVM常见面试题(一):JVM是什么、由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
JVM常见面试题(一):JVM是什么、由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别