Oracle JDK,从jdk-8u201开始,就改成收费了,《JDK的版本号解惑
The new license permits certain uses, such as personal use and development use, at no cost -- but other uses authorized under prior Oracle JDK licenses may no longer be available.
注意到JDK8这提到了两个8u211和8u202,这其实就是个分水岭,JDK8 8u202及以下是免费的,从JDK8 8u211及以上,就都是收费了,
例如JDK 16,明确说了JDK不在开源协议下,
但是在Oracle最新即将推出的JDK 17,再次官宣免费了,Oracle JDK根据二进制代码许可协议获得许可,
JDK 17 binaries are free to use in production and free to redistribute, at no cost, under the Oracle No-Fee Terms and Conditions License.
https://www.oracle.com/java/technologies/downloads/
P.S. OpenJDK根据GPL v2许可获得许可。
JDK 17是Java SE平台版本17的开源参考实现,由JSR 392在JCP(Java Community Process)指定,
具体许可协议,可以参考,
https://www.oracle.com/downloads/licenses/no-fee-license.html
Your use of this Program is governed by the No-Fee Terms and Conditions set forth below, unless you have received this Program (alone or as part of another Oracle product) under an Oracle license agreement (including but not limited to the Oracle Master Agreement), in which case your use of this Program is governed solely by such license agreement with Oracle.
Oracle No-Fee Terms and Conditions (NFTC)
Definitions
"Oracle" refers to Oracle America, Inc. "You" and "Your" refers to (a) a company or organization (each an "Entity") accessing the Programs, if use of the Programs will be on behalf of such Entity; or (b) an individual accessing the Programs, if use of the Programs will not be on behalf of an Entity. "Program(s)" refers to Oracle software provided by Oracle pursuant to the following terms and any updates, error corrections, and/or Program Documentation provided by Oracle. "Program Documentation" refers to Program user manuals and Program installation manuals, if any. If available, Program Documentation may be delivered with the Programs and/or may be accessed from www.oracle.com/documentation. "Separate Terms" refers to separate license terms that are specified in the Program Documentation, readmes or notice files and that apply to Separately Licensed Technology. "Separately Licensed Technology" refers to Oracle or third party technology that is licensed under Separate Terms and not under the terms of this license.Separately Licensed Technology
Oracle may provide certain notices to You in Program Documentation, readmes or notice files in connection with Oracle or third party technology provided as or with the Programs. If specified in the Program Documentation, readmes or notice files, such technology will be licensed to You under Separate Terms. Your rights to use Separately Licensed Technology under Separate Terms are not restricted in any way by the terms herein. For clarity, notwithstanding the existence of a notice, third party technology that is not Separately Licensed Technology shall be deemed part of the Programs licensed to You under the terms of this license.Source Code for Open Source Software
For software that You receive from Oracle in binary form that is licensed under an open source license that gives You the right to receive the source code for that binary, You can obtain a copy of the applicable source code from https://oss.oracle.com/sources/ or http://www.oracle.com/goto/opensourcecode. If the source code for such software was not provided to You with the binary, You can also receive a copy of the source code on physical media by submitting a written request pursuant to the instructions in the "Written Offer for Source Code" section of the latter website.
The following license terms apply to those Programs that are not provided to You under Separate Terms.
License Rights and Restrictions
Oracle grants to You, as a recipient of this Program, subject to the conditions stated herein, a nonexclusive, nontransferable, limited license to:
(a) internally use the unmodified Programs for the purposes of developing, testing, prototyping and demonstrating your applications, and running the Program for Your own personal use or internal business operations; and
(b) redistribute the unmodified Program and Program Documentation, under the terms of this License, provided that You do not charge Your licensees any fees associated with such distribution or use of the Program, including, without limitation, fees for products that include or are bundled with a copy of the Program or for services that involve the use of the distributed Program.You may make copies of the Programs to the extent reasonably necessary for exercising the license rights granted herein and for backup purposes. You are granted the right to use the Programs to provide third party training in the use of the Programs and associated Separately Licensed Technology only if there is express authorization of such use by Oracle on the Program's download page or in the
Program Documentation.
Your license is contingent on compliance with the following conditions:
You do not remove markings or notices of either Oracle's or a licensor's proprietary rights from the Programs or Program Documentation;You comply with all U.S. and applicable export control and economic sanctions laws and regulations that govern Your use of the Programs (including technical data);
You do not cause or permit reverse engineering, disassembly or decompilation of the Programs (except as allowed by law) by You nor allow an associated party to do so.
For clarity, any source code that may be included in the distribution with the Programs is provided solely for reference purposes and may not be modified, unless such source code is under Separate Terms permitting modification.Ownership
Oracle or its licensors retain all ownership and intellectual property rights to the Programs.Information Collection
The Programs' installation and/or auto-update processes, if any, may transmit a limited amount of data to Oracle or its service provider about those processes to help Oracle understand and optimize them. Oracle does not associate the data with personally identifiable information. Refer to Oracle's Privacy Policy at www.oracle.com/privacy.Disclaimer of Warranties; Limitation of Liability
THE PROGRAMS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ORACLE FURTHER DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT.IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL ORACLE BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Last updated: 12 September 2021
JDK为什么闭源到了现在,选择开源了?虽然从官方没找到任何原因,但其中可能的一个原因,就是对Java技术使用范围的推广。众所周知,SUN公司被Oracle收购前,JDK一直都是免费的,Java应用、Java程序员、Java开源社区,可以说都是蓬勃发展的。但是当Oracle JDK出现,不仅是名称改了,JDK8开始选择闭源,直接导致很多企业级应用在选择技术栈语言的时候,不得不重新考量,是否存在替代Java的技术,毕竟Oracle作为一家顶级技术企业,对知识产权的保护我们有目共睹,谁都不想让自己的应用,某天因为版权问题遭到重创。同时各种开源语言的发展,非常迅猛,例如Python、Go等,在一定程度上,Java不再不可替代。
数字说明更直接,我们参考TIOBE编程语言社区排行榜,他是编程语言流行趋势的一个指标,这是9月最新的,Java排在前三甲,但是被C和Python压制,
P.S.
1. https://www.tiobe.com/tiobe-index,这份排行榜排名基于全球技术工程师、课程和第三方供应商的数量,每月更新,其中包括了流行的搜索引擎以及技术社区,如 Google、百度、维基百科、CSDN、必应、Hao123等。
2. 这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。这个排行榜可以用来考察你的编程技能是否与时俱进,还可以在开发新系统时作为一个语言选择依据。
3. 具体计算方式,https://www.tiobe.com/tiobe-index/programming-languages-definition/
从这张折线图更能反映出问题,绿色线的Java,明显下降,而且和其他语言的差距在缩小,
最近的年度编程冠军,都是被C、Python包揽了,
可能正是看到Java现在的状态,才让Oracle做出了JDK 17免费的决策,但是从商业角度,现在的免费,不代表未来都会免费的,商场如战场,策略会随着时局的改变而改变,因此在做技术选型的时候,还是应该充分考量技术的发展,以及业务的需求,选择最合适的,而不是外界认为最佳的,才是最重要的。