当前位置: 首页 > 编程日记 > 正文

Java 社区领袖联合发文:别慌,Java 仍然是免费的!

开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>  hot3.png

在去年的 Java One 上,Mark Cavage 当时宣布 Oracle 将逐步开源 Oracle JDK 的专有功能(商业特性)。Oracle Java 平台产品管理高级总监 Donald Smith 曾在一篇博客文章中写道,他们的目的是让 OpenJDK 版本和 Oracle JDK 二进制文件之间没有技术差异。

但关于 OpenJDK 和 Oracle JDK 以及其他服务商提供的变种版本,各自的许可证是什么,又都提供哪些服务和支持,让许多 Java 开发者理不清头绪,容易混淆。Oracle 7 月份启用新的 Java SE 订阅模式的消息一出,更是让许多开发者认为是不是代表 Java 以后要收费?

为解答 Java 社区的疑惑,超过30位 Java 社区领袖和专家共同创建了一个 Google 文档,里面详细描述了各版本之间的区别,并对一些常见问题进行了答疑。文档分为“短版本”和“长版本”,建议所有 Java 开发者研读。

e69c0d0abbf8a30d938e0e703ac018b0c8d.jpg

文档中强调,开发者仍然可以免费获得 Oracle JDK、Oracle 的 OpenJDK ,以及其他服务商提供的 OpenJDK:

OpenJDK 社区创建并维护 (GPLv2+CE 许可) Java SE 规范的开源参考实现(RI),受 JCP(Java Community Process)管理,并根据 JSR(Java Specification Request)发布未来每个版本。

有不同服务商提供不同的 Java SE 实现(如 Azul、Eclipse、IBM、Red Hat、Oracle、SAP 和其他公司),其中最通用的是 Oracle JDK 。

虽然 Java 11 LTS 已发布,但更多的开发者还停留在上一个 LTS 版本 —— Java 8 。关于开发者最为关注的 Java 8 的许可问题,文档给出了解答:

Oracle 将在2020年12月前为个人桌面用户继续提供 Oracle JDK 8 的公共更新。若是商业用途,则在2019年1月之后不会再有免费的商业版本更新。但是,自 Java SE 9 以后,Oracle 还提供了 OpenJDK 版本,可免费用于商业用途,并且还有其他服务商提供的免费 OpenJDK 版本可供选择,如 AdoptOpenJDK、Azul、IBM、Red Hat、Linux distros 等。

也就是说,如果届时你想继续免费使用 Java 8,你可以:

  • 不再更新,继续无限期地使用 Oracle JDK 8 ;

  • 使用来自其他服务商的免费 Java SE 8 / OpenJDK 8 二进制分发版。

上面也有提到,由于 Oracle 在7月份改变了 Java SE 的商业支持模式,所以从 Java 11 开始,支持方式有所不同:

Oracle OpenJDK - 使用 GPLv2 + CE 许可,可用于商业用途;
Oracle JDK - 使用付费商业许可(个人和非商业使用免费)。

简单一句话总结,想要继续免费使用 Java 11 的,请选择 OpenJDK !

最后附上各版本支持路线图:

d3633365d585b0a8186a324fa065a7d68d2.jpg

142407f32b9a5bc1615b6c4614b7e68a1d0.jpg

相关文章:

Squid安装

最新版Squid安装 http://www.squid-cache.org/Versions/v3/3.5/# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.7.tar.gz# tar zxvf squid-3.5.7.tar.gz# cd squid-3.5.7# ./configure --prefix/usr/local/squid# make && make install# chmod -R 777 /…

Java内部类手机专卖店_JAVA——内部类的那些事儿

obj3.func();//3.2 访问静态内部类的静态方法(通过类名访问)Outer.StaInner.staFunc();//4 局部内部类访问局部变量Outer obj4 new Outer();obj4.local();//5 匿名内部类Outer obj5 new Outer();obj5.anonymous();//6 匿名内部类作为参数asPara(new AbstractClass() {public …

Linux下Postfix的配置和使用

Postfix为何物,详见:http://zh.wikipedia.org/wiki/Postfix 0.关于Postfix postfix的产生是为了替代传统的sendmail.相较于sendmail,postfix在速度。性能和稳定性上都更胜一筹。如今眼下许多的主流邮件服务事实上都在採用postfix. 当我们须要一个轻量级的…

部分人说 Java 的性能已经达到甚至超过 C++,是真的吗?

好多Java程序员都说由于JIT技术的引入,Java的性能已经和C一样了,而且Java的开发效率极高,可以省下60%的时间。请问事实真的是这样吗?我平常也都在写这两个语言,但是因为开发的软件的复杂度不大,并没有感觉到…

Wiki 开源软件

Wiki 是一个协同著作平台或称开放编辑系统。所谓协同工作, 即它能够让浏览网页的人都能够去修订网页,其简介的 ... Wiki 是怎么做到的. Wiki 使用 了简化的语法,替代复杂的HTML,加上WEB 界面的编辑工具,降低内容维护的…

Android studio安装与调试

1.下载安装android studio 下载好之后安装好2.启动报错提示1)进入刚安装的Android Studio目录下的bin目录。找到idea.properties文件,用文本编辑器打开。2)在idea.properties文件末尾添加一行: disable.android.first.runtrue &am…

java的父类java.lang.object_根父类:java.lang.Object

1、根父类(1)Object类型是所有引用数据类型的超类,包括数组类型如果一个类没有显式的声明它的父类,那么它的父类就是Object。(2)Object类中的方法,会继承到所有类型的对象中,包括数组对象。即所有对象都可以调用Object类中声明的方…

spring cloud服务发现注解之@EnableDiscoveryClient与@EnableEurekaClient

在使用服务发现的时候提到了两种注解,一种为EnableDiscoveryClient,一种为EnableEurekaClient,用法上基本一致,今天就来讲下两者,下文是从stackoverflow上面找到的对这两者的解释:原文链接 There are multiple implementations of…

strust2自定义interceptor的基本方法及操作

需求:制作一个网站需要用户登陆后才能查看,即一个权限的问题 1.首先明确在用户没登陆前有两个Action请求是可以通过的,即注册和登陆。 2.创建拦截器,如UserLoginInterceptor.java,如下 public class UserLoginIntercep…

使用xdebug分析thinkphp框架函数调用图

开发中需要性能调优,使用xdebug分析thinkphp框架函数调用图。关于xdebug的安装参考这2篇 NetBeans配置Xdebug 远程调试PHP php扩展xdebug安装以及用kcachegrind系统分析1.安装xdebug 需要先去http://www.xdebug.org看看一些文档,xdebug作为php扩展安装 #…

java+script+当前日期_如何在JavaScript中获取当前日期?

如何在JavaScript中获取当前日期?#1楼您可以使用扩展了 Date对象的Date.js库,从而可以使用.today()方法。#2楼如果您想对日期格式进行更多的粒度控制,我强烈建议您查看一下momentjs。 很棒的图书馆-只有5KB。 http://momentjs.com/#3楼你可以…

java中的类修饰符、成员变量修饰符、方法修饰符。

类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。 abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供…

Linux 系统挂载数据盘

Linux 系统挂载数据盘: 适用系统:Linux(Redhat , CentOS,Debian,Ubuntu)* Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作。下面的操作将会把数据盘划分为一个…

java 启动某个类_java – Spring Boot – 如何指定备用启动类? (多个入口点)

我想添加一个替代的入口点到我的Spring-Boot应用程序.我宁愿把它当成一个肥罐.这可能吗?根据他们的documentation,属性loader.main指定要启动的主类的名称.我尝试java -jar MyJar.jar –loader.main com.mycompany.AlternateMain,但是我的pom.xml中指定的start-cla…

WIN7 64位系统下,右下角的声音和电源图标不见的解决办法

近日,电脑突然出现任务栏右下角的声音和电源图标消失不见的问题,重启仍旧没有修复,后来找到了解决办法 解决办法: 1.CtrlShiftEsc键调出windows资源管理器。 2.找到进程中的explorer.exe进程并结束它。 3.在文件选项的新建任务选项…

创建Maven版Java工程

步骤: 创建成功后,如图: 转载于:https://www.cnblogs.com/zhzcode/p/9722902.html

Linux系统启动任务的写法

1.到/etc/rc.d目录# cd /etc/rc.d 2.修改rc.local # vim ./rc.local你之前是怎么启动nginx和php命令复制即可。例如:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf/etc/init.d/php-fpm3.一定要给权限 # chmod x rc.local特别是喜欢下载到本地修…

java ee不能运行_Java9+移除 Java EE,导致我的 groovy 脚本无法运行

以以下这段代码为例Grab(org.jsoup:jsoup:1.10.1)import org.jsoup.JsoupJsoup.connect(https://v2ex.com).get().select(span.item_title > a).each {println it.text() : https://v2ex.com it.attr(href)}原本是 groovy2.5java8,可以正常跑,然后…

虚拟文件系统(VFS)

原文链接:http://www.orlion.ga/1008/ linux在不同的文件系统之上做了一个抽象层,使得文件、目录、读写访问等概念都成为抽象层概念,这个抽象层被称为虚拟文件系统(VFS)。 linux内核的VFS子系统如下: 每个进程在PCB(Process Control Block)中…

[学习笔记]矩阵乘法及其优化dp

1.定义: $c[i][j]\sum a[i][k]\times b[k][j]$ 所以矩阵乘法有条件,(n*m)*(m*p)n*p 即第一个矩阵的列数等于第二个矩阵的行数,否则没有意义。 2.结合律与分配率 矩阵乘法不一定任何时候都有交换律。因为交换后甚至不能保证第一个矩阵的列数等…

[LeetCode] Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串...

Given a string, find the length of the longest substring T that contains at most k distinct characters. For example, Given s “eceba” and k 2, T is "ece" which its length is 3. 这道题是之前那道Longest Substring with At Most Two Distinct Charac…

Linux创建指定用户特定指定目录权限

指定用户特定指定目录权限需要注意要指定好文件夹的权限,不然会导致nginx不能访问,最好是在root下建立目录,然后 # useradd -d /usr/www -m tempuser# passwd tempuser 回车输入密码 注意一定要带用户名,不然就是修改root!!!# c…

python asyncio教程_python中使用asyncio实现异步IO实例分析

1、说明Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行&#xf…

c语言初学 循环 的灵活使用小案例

上为流程图 上为代码实现,没有做优化。接下来是效果图。 时间2018.10.01 地点:广东轻工业职业技术学院复制代码 转载于:https://juejin.im/post/5bb1d98a5188255c9a77441a

常见maven引用

json-lib Could not find artifact net.sf.json-lib:json-lib:jar json-lib是需要区分jdk版本的&#xff0c;pom.xml中的配置应加上<classifier>标签&#xff0c;如用jdk15&#xff1a; <dependency><groupId>net.sf.json-lib</groupId><artifactId…

怎么控制table的大小java_如何查询Table占用空间的大小

Oracle和DB2都支持分区表&#xff0c;但是我们得知道什么样的表适合使用分区表技术&#xff0c;Oracle的官方建议是超过2G的Table就要使用分区表。下面来总结一下&#xff0c;各DB中如何获得这些大小信息&#xff1a;Oracle 10G中&#xff1a;查询出当前用户的表所占用的空间大…

王豪:HW265到“HW266”

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/82929609 每年的MSU的视频压缩评比报告都是多媒体的热点话题之一&#xff0c;在MSU 2018评比中&#xff0c;华为HW265在多项测试中排名…

Flex报错Error #2048: 安全沙箱冲突

FlexJPA架构&#xff0c;JPA程序迁移&#xff0c;从A服务器到B。其他一切没变&#xff0c;唯一变的就是IP。 前端Flex也就是swf报错Error #2048: 安全沙箱冲突:http://xxx.swf 不能从 xxx 加载数据 如下&#xff1a;其实原因就是需要在www网站的根目录放一个crossdomain.xml就可…

centos 默认mysql_centos改变mysql默认目录

centos改变mysql默认目录查看SELinux状态&#xff1a;如果未关闭&#xff0c;则要关闭1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态SELinux status: enabled2、getenforce ##也可以用这个命令检查关闭SELinux修改配置文件需要重启机器&#xff1a;…

如何免费(轻成本)在网上做推广宣传

最近有很多人在问我一个问题&#xff0c;如何少成本或者免费的在网上做推广宣传&#xff0c;这里我也总结一下&#xff0c;给各位一些建议和小方法&#xff0c;目前就以“BAT”和其他平台为例说明一下&#xff0c;通常来说都会以百度重技术、阿里重运营、腾讯重产品来形容“BAT…