java,jdk 分不清,是否免费,怎么选择合适的版本

这篇具有很好参考价值的文章主要介绍了java,jdk 分不清,是否免费,怎么选择合适的版本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Oracle JDK 和 Open JDK

Oracle JDK

Open JDK

来源

Oracle团队维护

Oracle和Open Java社区

授权协议

Java 17及更高版本 Oracle Java SE 许可证Java16及更低版本甲骨文免费条款和条件 (NFTC) 许可协议 (oracle.com)

GPL v2许可证

关系

由Open JDK构建,增加了少许内容

发行周期

6个月,每两年一个LTS

6个月

是否收费

2021年9月起Java17及更高版本所有用户免费。16及更低版本,个人用户、开发用户免费。

2017年9月起,所有版本免费

LTS

目前7,8,11,17

无,但是有社区编译的其他支持

对语法的支持

一致

一致

性能

最佳

接近,几乎无差

其他的可选 JDK发行版

名称

支持团队/公司

说明

OpenJDK

Sun->甲骨文

原是Sun Microsystems公司为Java平台构建的Java开发环境(JDK)的开源版本,,完全自由,,开放源码

Zulu

Azul Systems

需要为其面向网络的客 户提供基于服务器的Java应 用程序的公司提供服务,,或者为嵌入式和物联网用例提 供基于Java的系统

Liberica

BellSoft

100% 开源Java实现。它是由BellSoft贡献的OpenJDK构建的

Temurin

eclipse

Adoptopenjdk自2020年7月交给eclipse,,现在改名Temurin(Adoptium.net)

openJ9

IBM

IBM打包的openJ9 JVM的JDK, 有区别于 Oracle HotSpot JVM , 极省内存

Microsoft JDK

Microsoft微软

SapMachine

SAP

是OpenJDK 项目的下游版本。它用于为希望使用OpenJDK运行其应用程序的SAP客户和合作伙 伴构建和维护支持SAP的OpenJDK版本

RedHat OpenJDK

RedHat

免费的 、多平台的、面向生产的开放Java开发工具包(OpenJDK) 发行版

Amazon Corretto

Amazon

阿里巴巴内部 OpenJDK 定制版AJDK 的开源版本

Dragonwell

阿里巴巴

阿里巴巴内部 OpenJDK 定制版AJDK 的开源版本,,AJDK 为在线电商、金融、物流做了结合业务场景的优化,,运行在超大规模的,,100,000+ 服务器的阿里巴巴数据中心

Kona

腾讯

腾讯云内部的默认 JDK,,用于云计算和其他 Java 应用程序

毕昇JDK

华为

毕昇JDK基于OpenJDK开发,,是一个高性能、可用于生产环境的OpenJDK发行版

商业收费问题

java,jdk 分不清,是否免费,怎么选择合适的版本
java,jdk 分不清,是否免费,怎么选择合适的版本
java,jdk 分不清,是否免费,怎么选择合适的版本
  • 什么时候又开始免费了

2021年9月起 java 17 及更高版本所有用户免费, 16及更低版本,个人用户,开发用户免费

  • 什么时候开始收费

Oracle JDK从2019年4月16号开始商用商用商用收费了

  • 哪个版本开始收费

2019年4月16日当天,Oracle发布了Oracle JDK的8u211和8u212两个版本 (属于JDK8系列) ,并从这两个版本开始将JDK的授权许可从BCL换成了OTN!也就是从这两个版本开始 商用收费了!

  • 啥叫商用收费

商用收费就是当你使用 Oracle JDK 8u211及以上版本进行具有商业用途(盈利目的)的应用或工具的开发时是要收费的,这时是要先向Oracle缴费取得授权的!当然,一开始你没缴费取得授权就直接用了,Oracle也是不知道的啦!但当你的产品应用或工具越做越大,越来越有名气和市场影响力时,说不定哪天就收到了Oracle发来的律师函,会搞得你公司不要不要的,甚至破产!

  • Oracle JDK的最后一个免费版本是哪个呢?

是2019年1月15日发布的Oracle JDK 8u201和8u202!

  • 说好的 最后一个 免费版本,为什么写了两个版本号 8u201和8u202呢?我到底要用哪一个?

这就涉及到Oracle跟Oracle JDK的使用者之间的一个小小的约定或小常识了!

从 2014 年 10 月发布 Java SE 7 Update 71 (Java SE 7u71) 开始,Oracle在发布Oracle JDK关键补丁更新 (CPUs:Critical Patch Updates) 的同时一般会发布相应的补丁集更新 (PSUs:Patch Set Updates)。

Oracle JDK 关键补丁更新 (CPUs) 包含安全漏洞修复和重要漏洞修复,Oracle 强烈建议所有Oracle JDK用户及时升级到最新的 CPU 版本,Oracle JDK 关键补丁更新 (CPUs) 版本号采用 奇数编号!

Oracle JDK 补丁集更新 (PSUs) 包含相应 CPUs 中的所有修复 以及其他非重要修复,仅当您受到Oracle JDK关键补丁更新 (CPUs)版本之外的其他漏洞的影响时才应当使用相应的补丁集更新 (PSUs) ,Oracle JDK 补丁集更新 (PSUs) 版本号采用 偶数编号!

所以,一般情况下我们只要下载 奇数编号 的最新版本更新就行了!记住:商业收费版本的不要用于商业用途,这不是小事情,严重起来会让你的公司倒闭

如果你真的很烦这些收费授权的Oracle JDK (主要应该是想节约成本) ,但又想尽量跟上或用上最新的JDK功能特性,那么Oracle官方其实还提供了一个完全免费开源的JDK版本——OpenJDK

Oracle在 GPL许可下提供了开源的 OpenJDK 发行版,最新版的OpenJDK一般都会紧跟对应版本的Oracle JDK,功能特性基本没有差异!

版本发布时间

版本

名称

发行日期

JDK 1.0

Oak(橡树)

1996-01-23

JDK 1.1

Coffce(咖啡)

1997-02-19

J2SE 1.2

Playground (运动场)

1998-12-04

J2SE 1.3

Kestrel (美洲红隼)

2000-05-08

J2SE 1.4

Merlin (灰背隼)

2002-02-13

Java SE 5.0 (1.5.0)

Tiger (老虎)

2004-09-30

Java SE 6.0 (1.6.0)

Mustang (野马)

2006-04

Java SE 7.0 (1.7.0)(LTS)

Dolphin (海豚)

2011-07-28

Java SE 8.0 (1.8.0)(LTS)

Spider (蜘蛛)

2014-03-18

Java SE 9.0

从Java 8开始开发代号已经弃用了

2017-09-21

Java SE 10.0

2018-03-21

Java SE 11.0(LTS)

2018-09-25

Java SE 12.0

2019-02-07

Java SE 13.0

2019-09-26

Java SE 14.0

2020-03-17

Java SE 15.0

2020-09-15

Java SE 16.0

2021-03-16

Java SE 17.0(LTS)

2021-09-14

Java SE 18.0

2022-03-22

Java SE 19.0

2022-09-20

LTS生命周期

版本

开始日期

结束日期

延期结束日期

主要特性

7(LTS)

2011年7月

2019年7月

2022年7月

8(LTS)

2014年3月

2022年3月

2030年12月

1. Stream API 流 2. 新的日期和时间API,LocalDate、LocalDateTime3. Lambda语法 4. 函数式接口 5. 接口可以添加非抽象方法,default关键字6. JVM移除永久代,增加元空间

11(LTS)

2018年9月

2023年9月

2026年9月

1. 模块化 (jdk9) 2. 默认G1垃圾回收器(jdk9) 3. 局部变量类型推断(jdk10) 4. 移除Java EE(jdk11) 5. 合并javac和java命令(jdk11)

17(LTS)

2021年9月

2026年9月

2029年9月

1. 试验ZGC,需要在JVM配置()jdk11) 2. 文本块升级(jdk13)3. switch支持lambda(jdk13预览,jdk14) 4. ZGC 可用于生产环境(jdk15) 5. record(jdk14,15预览,jdk16) 6. Realed class密封类(jdk15,16预览,jdk17) 7. 统一日志支持异步日志刷新(jdk17)

21(LTS)

2023年9月

2028年9月

2031年9月

知识点

  • 区别

java,jdk 分不清,是否免费,怎么选择合适的版本

Java 技术 = Java 语言 + Java 平台

Java 平台 = JVM + JDK

Java SE = JDK 根基

Java EE,JavaME,JavaFX 是 Java SE 的扩展

简单点说

Java SE 是标准版本 用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。如 Java应用程序开发平台Eclipse

Java EE 是网站开发方向的 主要针对企业应用的开发 如电子商务网站、ERP系统

Java ME 是手机方向的 主要针对消费类电子设备的 如: 蜂窝电话和可视电话、数字机顶盒、汽车导航系统 手机游戏,电视机顶盒和打印机相关的嵌入式设备软件

Java SE: Java Platform,Standard Edition 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序,包含了支持 Java Web 服务开发的类,为(Java EE)提供基础。

Java EE: Java Platform,Enterprise Edition 这个版本以前称为 J2EE。企业版帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。

Java ME: Java Platform,Micro Edition 这个版本以前称为 J2ME。为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。

JavaFX: JavaFX Script 编程语言 是一种declarative, statically typed(声明性的、静态类型)脚本语言

  • Java EE 与 Java SE 有什么区别?

Java EE 相比于Java SE 来说,除了多出包(Package)以外,还多了若干 Java 容器,如 Tomcat、GlassFish、IBM WebSphere 等。

  • 那么什么是 JAVA 容器呢?

以 Java EE 的子集 Servlet 为例,我们现在用 Servlet 可以相对轻松的写出一个动态 Web 站点。

  • JDK8与JDK1.8的区别

 JDK8或者JDK1.8是由于自从JDK1.5/JDK5命名方式改变后遗留的新旧命令方式问题。所以 Java 8, JDK8或者JDK1.8也是同一个东西。

  • JDK、JRE、ServerJRE

Software Developers: JDK (Java SE Development Kit). For Java Developers. Includes a complete JRE plus tools for developing, debugging, and monitoring Java applications.

​ Administrators running applications on a server: Server JRE (Server Java Runtime Environment) For deploying Java applications on servers. Includes tools for JVM monitoring and tools commonly required for server applications, but does not include browser integration (the Java plug-in), auto-update, nor an installer.

​ End user running Java on a desktop: JRE: (Java Runtime Environment). Covers most end-users needs. Contains everything required to run Java applications on your system.

​JDK

JDK(Java Development Kit)又称J2SDK(Java2 Software Development Kit),是Java开发工具包,它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提供了JVM和Runtime辅助包,用于解析class文件使其得到运行)。如果你下载并安装了JDK,那么你不仅可以开发Java程序,也同时拥有了运 行Java程序的平台。JDK是整个Java的核心,包括一堆Java工具tools.jar和Java标准类库。

JRE

JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。

Server JRE

Server JRE是专为服务器端程序量身打造的, 只包含JRE/JDK中最常用的那部分功能.。为了做到简单,Server JRE不使用安装包, 而是一个绿色版的压缩文件。

从使用情况来看,服务器部署使用server jre比较好,精简了javafx一些图形界面才用到的东西

Server JRE 包括 JVM 监测工具和服务器应用程序所需的常用的工具。JRE包括浏览器集成 Java 插件。

老版本的JDK包括了JRE,但JDK8之后的版本不再包括JRE. 从JDK 6 到 JDK 10: JRE, server JRE 可以单独下载, 从JDK11 开始不再单独下载文章来源地址https://www.toymoban.com/news/detail-469558.html

到了这里,关于java,jdk 分不清,是否免费,怎么选择合适的版本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SAS硬盘和SATA硬盘傻傻分不清?不懂的看这里

    一、SAS SSD与SATA SSD的主要差异: 01 接口形态的差异 SAS(Serial Attached SCSI)即串行连接SCSI,和SATA(Serial ATA)相同,采用串行技术以获得更高的传输速度。SAS 具备2对收发通道,而SATA 仅有1对收发通道, SAS的接口技术可以向下兼容SATA,但SATA不可以反向兼容SAS接口。 SAS接口的设

    2024年02月04日
    浏览(67)
  • VR和AR傻傻分不清,一句话给你讲明白。

    不说废话,直接说结论,虚拟现实(Virtual Reality,VR)和增强现实(Augmented Reality,AR)。如果现实是A,虚拟是B,那么VR=B,AR=A+B,就这简单,不走弯弯绕,有兴趣的的往下看。 虚拟现实(Virtual Reality,VR)和增强现实(Augmented Reality,AR)是两种不同的技术和体验,它们在现实

    2024年02月22日
    浏览(54)
  • 做网络那么多年,连以太网接口和串口都分不清?本文值得一看!

    路由器是一种网络设备,它的主要功能是在不同的网络之间转发数据包,实现网络互联。路由器根据数据包的目的地址,选择最佳的路径,将数据包发送到下一跳。路由器可以连接不同的网络类型,如以太网、帧中继、PPP等。 路由器上有多种不同的接口,用于连接不同的网络

    2024年02月11日
    浏览(47)
  • 腾讯云轻量应用服务器“镜像”怎么选择合适?

    腾讯云轻量应用服务器镜像怎么选择?如果是用来搭建网站可以选择宝塔Linux面板腾讯云专享版,镜像系统根据实际使用来选择,腾讯云百科txybk.com来详细说下腾讯云轻量应用服务器镜像的选择方法: 轻量应用服务器的镜像可以选择纯净版操作系统,Linux如CentOS、Ubuntu、Cent

    2024年02月08日
    浏览(47)
  • uni-app 分不清的全局变量this, uni, $u, vm, uni.$u, this.$u

     项目引入了uview,并将uview所有模块指给uniapp全局变量uni   uni.$u=$u  在登录页面,或者APP.vue打印以下变量: this, uni, $u, vm, uni.$u, this.$u 运行结果 $u     是uview挂载到uni上的,方便使用uni来操作uview组件。  uni.  对象是uni-app框架实例。 this.  在.vue页面,对应就是当前vue的实例

    2024年02月10日
    浏览(46)
  • 腾讯云服务器配置怎么选择?CPU内存带宽系统盘如何选合适?

    腾讯云服务器配置包括CPU内存、公网带宽和系统盘,云服务器分为CVM服务器和轻量应用服务器,腾讯云服务器网来详细说下腾讯云服务器配置怎么选择?到底是选择云服务器CVM还是轻量应用服务器?CPU内存选择几核几G?公网带宽多大合适?云服务器系统盘类型怎么选择? 目

    2024年02月11日
    浏览(58)
  • 小米路由器华为路由器 怎么才能选择一款合适的智能路由器?

    近两年,具有智能概念的路由器风生水起,从互联网巨头到初创公司均涉足到智能路由器的研发。什么样的路由器才算是智能路由?度娘到的资料有些杂乱,但基本的共同点是只要路由器能够支持安装插件扩展路由功能、提供移动设备端App进行管理的路由器均可称为智能路由

    2024年02月08日
    浏览(54)
  • 选择合适的帧率和分辨率:优化RTSP流视频抓取(java)

    在实时视频流应用中,选择适当的帧率和分辨率对于确保视频流的顺畅播放和图像质量至关重要。本文将向您介绍如何使用Java和JavaCV库中的FFmpegFrameGrabber来从RTSP流中抓取图像,并在抓取时设置帧率和分辨率。 首先,确保您的Java项目中包含JavaCV库的依赖。您可以在Maven项目中

    2024年02月09日
    浏览(64)
  • 怎么选择Tomcat对应的JDK版本

    Tomcat下载官网: Apache Tomcat® - Which Version Do I Want? JDK下载官网: Java Downloads | Oracle 中国 如果不知道Tomcat的哪个版本应该对应哪个版本的JDK可以打开官网,点击 Whitch Version  下滑,有低版本的,如:jdk8,jdk11等

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包