经常被问到Oracle JDK是不是要钱了?收费了?从哪个版本开始收费?
木有错,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)。那么CPUs和PSUs之间有什么区别呢?
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,功能特性基本没有差异!至于Oracle为什么让Oracle JDK商业收费,又搞出一个功能特性几乎没有差别的OpenJDK来,这个是Oracle公司自己有自己的考量,为什么,我也不知道!!!