Oracle如何对JDK收费

今年4月16日,Oracle发布了新的JDK 8的更新,版本号为8u211和8u212。与以往不一样的是,新版本的许可协议从BCL换成了OTN,这就意味着,你不能在生产环境使用这个版本了。若是你想继续使用8u211/8u212,或者以后发布的新版本,就须要给Oracle交钱了。html

固然,并非你用了新版本的JDK就要交钱,这个时候要区分私用和商用:java

私用,是我总结的一个词,它包括”Personal Use”和”Development Use”,前者表示一些我的用途,比方说在本身的电脑上写一些小工具,作一些数据分析等等;后者表示开发用途,好比平常开发、作测试、作演示等等。商用不太好界定。个人理解就是拿来赚钱就是商用,比方说把网站部署到生产环境,在公司内部系统使用等。git

我用的JDK使用什么协议?

BCL协议,即Oracle Binary Code License Agreement,协议规定你可使用JDK,可是不能进行修改。私用和商用均可以,可是JDK中的某些商业特性,是须要付费才可使用的。OTN协议,即Oracle Technology Network License Agreement,目前新发布的JDK用的都是这个协议,能够私用,商用须要付费。从下图能够看出各个版本对应的协议:github


我不想掏钱怎么办?

商用的话使用上面BCL协议的版本,私用怎么着都行。不少时候,开发者会对什么版本用了什么协议比较迷惑,懒得搞清楚,那么能够直接使用OpenJDK服务器

OpenJDK是一个基于GPLv2+CE协议的开源JDK实现,他由OpenJDK社区来运做,做为OpenJDK社区的主导者,Oracle也在尽可能减小OpenJDK和Oracle JDK的差异(source),将一些商业特性移植到了OpenJDK上,好比Java Flight Recorder,Java Mission Control和ZGC等等。对于普通开发者,二者差别可忽略不计。OpenJDK一样会每6个月发布一个新版本,不过每次新的版本发布后,旧的就不维护了,好比OpenJDK 12发布以后,11版本便中止更新,停留在11.0.2版本,没有LTS一说了。oracle

除了Oracle的OpenJDK,还有不少免费OpenJDK实现能够用,好比 ZuluAdoptOpenJDK,Amazon的Corretto和阿里巴巴的dragonwell等等。具体他们有什么区别,咱们之后再说。app

咱们大厂愿意掏钱怎么办?

能够经过订阅Java SE Subscription来付费,桌面用途每人每个月2.5刀,服务器用途每一个处理器每个月25刀,量多还有优惠。Oracle之前还提供Java SE Advanced, Java SE Advanced Desktop和 Java SE Suite等一次性受权,不过如今都建议新老付费用户换成订阅制了。工具

Oracle为何这么作

固然是赚钱,OTN协议的Oracle JDK如今容许私用也只是想让开发者养成习惯,未来开发者搞公司项目的时候,很是有可能会习惯性去Oracle官网下载JDK,这样就导致使了商用项目未经许可违规使用。Oracle法务部的刀确定老早就磨好了。测试

参考资料:


                                      

相关文章
相关标签/搜索