"Java SE"指的是三件事:
世界上任何人都可以自由编写实现Java SE规范的软件.在过go ,有几家公司这样做过.
然而,anybody in the world is not free to use the 100.要使用该商标,个人或公司必须在许可协议中与甲骨文达成协议.据推测,这笔交易需要付款.
长话短说,为了简洁明了,…过于简化一些以前编写了自己的Java SE实现的公司决定联合起来,合并他们的代码库,并将整个代码作为开源发布.这些公司包括甲骨文、IBM和苹果.于是诞生了OpenJDK项目(Wikipedia).从那时起,其他公司和个人也加入了这个项目.
甲骨文拥有的OpenJDK name is a trademark家.然而,甲骨文有published permission个允许其他人使用这个术语而不需要付费.
该OpenJDK项目发布了实现Java SE规范的源代码.该项目确实发布了not个构建的二进制文件或安装程序.
一些供应商确实为Java SE规范的实现发布了构建的二进制文件或安装程序.几乎所有这些实现都在很大程度上(如果不是完全)依赖于OpenJDK源代码.
这些二进制文件/安装程序供应商包括(不按特定顺序):
…还有更多.
大多数构建的二进制或安装程序产品在其名称或描述中使用OpenJDK,这是Oracle允许的.其中一些产品可以在甲骨文明确许可的情况下使用术语Java或Java SE.
还有其他版本的Java技术:
- Java Card(适用于智能卡、徽章等)
- Java ME或微型版(用于受限制的设备)
- Java EE或企业版(在Java SE规范的实现之上运行的广泛的规范集合,旨在为面向企业的用户开发软件的开发人员)
前两家Java Card&;Java ME为甲骨文所有.第三个,Java EE,是甲骨文公司捐赠给Eclipse基金会的,如果它现在被称为Jakarta EE的话.Jakarta EE是一个规范集合,由不同的供应商发布实现.
术语"JDK"指的是Java Development Kit.该工具包包括Java SE规范的实现,以及编写Java应用程序的工具.这些工具包括一个编译器.
术语"JRE"指的是Java Runtime Environment个.这是一个JDK中缺少的一些软件开发工具.
术语"JVM"指的是Java Virtual Machine.JVM是一个软件,它使基于Java的应用程序能够在运行时在特定类型的主机和操作系统上执行.Java应用程序是平台无关的,换句话说,不是"原生的".因此,Java应用程序需要特定的JVM才能知道如何在Mac、PC或大型机上运行.
每个JDK和每个JRE都包含一个JVM.