你安装的是 SUN/Oracle JDK 还是 OpenJDK ?

目录

  • 1 如何查看你安装的 JDK 版本

    • 1.1 要用到的命令行工具
    • 1.2 查看的命令
      • 1.2.1 如果是 SUN/OracleJDK, 显示信息为:
      • 1.2.2 如果 OpenJDK, 显示信息为:
  • 2 什么是 OpenJDK
    • 2.1 OpenJDK 的来历
    • 2.2 Oracle JDK 的来历
  • 3 Oracle JDK 与 OpenJDK 的区别
    • 3.1 主要不同
    • 3.2 授权协议的不同
    • 3.3 OpenJDK 不包含 Deployment 功能
    • 3.4 OpenJDK 源码不完整

1 如何查看你安装的 JDK 版本

1.1 要用到的命令行工具

Windows 系统的 cmd 命令行工具;

Linux 或 macOS 的 Terminal 终端;

1.2 查看的命令

java -version

1.2.1 如果是 SUN/OracleJDK, 显示信息为:

[[email protected] ~]# java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
  • 说明:

    Java HotSpot(TM) 64-Bit Server VM 表明, 此 JDK 的 JVM 是 Oracle 的 64位 HotSpot 虚拟机, 运行在 Server 模式下(虚拟机有 Server 和 Client 两种运行模式).

    Java(TM) SE Runtime Environment (build 1.8.0_162-b12) 是 Java 运行时环境(即 JRE)的版本信息.

1.2.2 如果 OpenJDK, 显示信息为:

[[email protected] ~]# java -version
openjdk version "1.8.0_144"
OpenJDK Runtime Environment (build 1.8.0_144-b01)
OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)

PS. 主要的 Linux 发行版(如Ubuntu, Fedora 和 Red Hat Enterprise Linux) 提供 OpenJDK 或其变体作为其默认的 Java SE 实现.

2 什么是 OpenJDK

百度百科上关于 OpenJDK 的说明:

Sun 发布的 OpenJDK 是一款只能运行在 i386 和 AMD-64 机器上的软件。

2.1 OpenJDK 的来历

Java 由 Sun 公司发明, 在2006年 SUN 公司将 Java 开源, 此时的 JDK 即为 OpenJDK.

也就是说, OpenJDK 是 Java SE 的开源实现, 它由 SUN 和 Java 社区提供支持, 2009年 Oracle 收购了 Sun 公司, 自此 Java 的维护方之一的 SUN 也变成了 Oracle .

大多数 JDK 都是在 OpenJDK 的基础上编写实现的, 比如 IBM J9, Azul Zulu, Azul Zing 和 Oracle JDK. 几乎现有的所有 JDK 都派生自 OpenJDK, 它们之间不同的是许可证:

OpenJDK 根据许可证 GPL v2 发布;

Oracle JDK 根据 Oracle 二进制代码许可协议获得许可.

2.2 Oracle JDK 的来历

Oracle JDK 之前被称为 SUN JDK, 这是在2009年 Oracle 收购 SUN 公司之前, 收购后被命名为 Oracle JDK.

实际上, Oracle JDK 是基于 OpenJDK 源代码构建的, 因此Oracle JDK 和 OpenJDK 之间没有重大的技术差异.

Oracle的项目发布经理 Joe Darcy 在 OSCON 2011 上对两者关系的介绍也证实了 OpenJDK 7 和Oracle JDK 7 在程序上是非常接近的, 两者共用了大量相同的代码(如下图), 注意: 图中提示了两者共同代码的占比要远高于图形上看到的比例, 所以我们编译的OpenJDK 基本上可以认为性能、功能和执行逻辑上都和官方的 Oracle JDK 是一致的.

3 Oracle JDK 与 OpenJDK 的区别

3.1 主要不同

OpenJDK Font Renderer(字体栅格化引擎) 和 Oracle JDK Flight Recorder(飞行记录仪) 是 Oracle JDK 和 OpenJDK 之间明显的主要区别. —— 存疑, 尚未求证.

OpenJDK 使用的是开源免费的 FreeType, 可以按照 GPL v2 许可证使用.

Oracle JDK 采用了商业实现, 其中的Flight Recorder 和 MissionControl 都是从 JRockit 中改造而来的.

JRockit 是 Oracle 的 JVM, 从 Java SE 7开始, HotSpot 和 JRockit合并为一个JVM.

3.2 授权协议的不同

OpenJDK 采用GPL V2协议放出, 而 Oracle JDK 则采用 JRL(Java Research License, Java研究授权协议) 放出. 两种者虽然都是开放源代码的, 但在使用上却要注意:

GPL V2允许在商业上使用;

JRL 只允许个人研究使用, 要获得 Oracle JDK 的商业许可证, 请联系 Oracle 的销售人员.

3.3 OpenJDK 不包含 Deployment 功能

部署的功能包括: Browser Plugin、Java Web Start、Java Mission Control, 这些功能OpenJDK 是没有的.

3.4 OpenJDK 源码不完整

在采用 GPL 协议的 OpenJDK 中, SUN JDK 的一部分源码因为产权问题无法提供给 OpenJDK 使用, 其中最主要的是 JMX 中的可选元件 SNMP 部份的代码, 因此这些不能开放的源码将它作成plug, 以供 OpenJDK 编译时使用.

参考:

https://blog.csdn.net/sinat_38259539/article/details/78114983

https://javapapers.com/java/oracle-jdk-vs-openjdk-and-java-jdk-development-process/

https://stackoverflow.com/questions/22358071/differences-between-oracle-jdk-and-openjdk

版权声明

作者: ma_shoufeng(马瘦风)

出处: 博客园 马瘦风的博客

您的支持是对博主的极大鼓励, 感谢您的阅读.

本文版权归博主所有, 欢迎转载, 但未经博主同意必须保留此段声明, 且在文章页面明显位置给出原文链接, 否则博主保留追究法律责任的权利.

原文地址:https://www.cnblogs.com/shoufeng/p/9719995.html

时间: 2024-11-01 11:31:46

你安装的是 SUN/Oracle JDK 还是 OpenJDK ?的相关文章

Linux安装Oracle JDK替换OpenJDK详解

Linux安装Oracle JDK替换OpenJDK详解 作者:旸仔发表于:2013-3-11分类:Linux 众所周知,由于Oracle公司的JDK的版权问题,大多数Linux发行版在安装时都会附带开源的无版权问题的OpenJDK,以支持某些 java程序软件.但是如果我们在Linux下做一些java语言的开发,很可能还是需要安装和使用Oracle公司的原版JDK(以下简称 “JDK”).如何安装JDK并替换掉OpenJDK呢?今天旸仔做一个详细的解答: 毋庸置疑,如果一个系统内同时存在一个以

Oracle JDK vs OpenJDK

OpenJDK是Sun在2006年末把Java开源而形成的项目,这里的"开源"是通常意义上的源码开放形式,即源码是可被复用的,例如IcedTea.UltraViolet都是从OpenJDK源码衍生出的发行版. Oracle JDK采用了商业实现,而OpenJDK使用的是开源的FreeType.当然,"相同"是建立在两者共有的组件基础上的,Oracle JDK中还会存在一些Open JDK没有的.商用闭源的功能,例如从JRockit移植改造而来的Java Flight

centos7 安装oracle jdk 与openjdk 实现切换

1. 分别安装oraclejdk 与openjdk #下载安装oraclejdk rpm -ivh --prefix=/usr.java/java1.8 ***.rpm #安装openjdk su -c "yum install java-1.8.0-openjdk" 2. 切换不同的java jdk sudo alternatives --config java #按提示选择不同的版本 3. 验证版本 java -veriosn

oracle jdk和openjdk区别;idea如何加载jdk源码并调试jdk代码

原文地址:https://www.cnblogs.com/shengulong/p/11403448.html

在 Debian 上安装 Oracle JDK 和 Eclipse

测试系统:Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux 一.Oracle JDK 的安装 1.下载 Oracle JDK(或者应该叫 Java SE 吧), 下载页面:_ http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html JDK-8-update-20-x64:_ http://download.oracle.com/otn-pub/java/jdk

[转帖] 部分收费的Oracle JDK VS 完全免费的OpenJDK

来源: http://www.flammulina.com/2018/10/28/%E9%83%A8%E5%88%86%E6%94%B6%E8%B4%B9%E7%9A%84oracle-jdk-vs-%E5%AE%8C%E5%85%A8%E5%85%8D%E8%B4%B9%E7%9A%84openjdk/ 本文将讨论Oracle JDK和OpenJDK之间的区别.注意目前 OpenJDK 和 Oracle JDK 仅由Oracle创建和维护.在详细介绍之前,让我们回顾一下JDK是什么,在开始对比

Centos安装Sun的JDK及测试

查询系统默认的JDK Centos系统(我vm上安装的是Centos6.3)默认会安装OpenJDK,要想使用默认的JDK,也需要你自己配置环境变量. 首先,检查系统是否安装有JDK并且OpenJDK的版本信息.(这里,我在网上也看到很多人说,要先卸载OpenJDK后在安装Sun公司的JDK版本(不然,后面Sun的JDK安装容易出错).这里,我并没有卸载,仍然安装的很OK了,这里安装还是随个人吧): (请切换到管理员的角色输入命令 su -)查询系统是否安装OpenJDK的命令如下: #rpm

【Java】Linux下安装配置Oracle JDK 1.7版本

1 环境 Vmware虚拟机中的Ubuntu 12.04 32位系统 2具体安装步骤 ①下载最新的jdk包 注意jdk区分32位版本和64位版本,要与Ubuntu兼容才行 下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html ②创建一个目录,解压压缩包 mkdir usr/lib/jvm 移动到该目录,并解压 [email protected]:/usr/lib$ sudo

Centos7安装Oracle JDK

查看Linux是否自带的JDK,如有openJDK,则卸载 1 java -version 1 rpm -qa | grep -E '^open[jre|jdk]|j[re|dk]' 卸载openjdk 1 su root 2 3 yum -y remove java java-1.7.0-openjdk 下载oracle jdk 1 wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie;&quo