Java中的JDK(Java开发工具包)和JRE(Java运行环境)并不只是Sun公司才能实现,其他厂商或组织也可以撰写自己的JDK和JRE,你编写的Java程序可以执行在这些不同厂商或组织写出来的JRE上。假设我们编写的Java程序中会有这样一段代码:
System.out.println("Hello World!");
这行程序的目的是请系统(System)的输出装置(out)显示一行(print)Hello World。是谁决定使用System、out、println这些名称的?为什么不是Platform、output、showLine这些名称?如果Sun使用System、out、println这些名称,而IBM使用Platform、output、showLine这些名称,那么用Sun的JDK写的程序就不能在IBM的JRE上执行,那么“跨平台”的特性就无法实现。
为了让对Java感兴趣的厂商、组织、开发者与用户参与定义Java未来的功能与特性,Sun公司于1998年组成了JCP(Java Community Process),这是一个开放性国际组织,目的是让Java演进由Sun非正式地主导,成为全世界数以百计代表成员公开监督的过程。任何想要提议加入Java的功能或特性,必须以JSR(Java Specification Requests)正式文件的方式提交,JSR必须经过JCP执行委员会(Executive Committee)投票通过,方可成为最终标准文件,有兴趣的厂商或组织可以根据JSR实现产品。若JSR成为最终文件后,必须根据JSR成果做出免费且开发原始码的参考实现,称为RI(Reference Implementation),并提供TCK(Technology Compatibility Kit)作为技术兼容测试工具箱,方便于其他想根据JSR实现产品的厂商或组织参考与测试兼容性。JCP、JSR、RI和TCK的关系如下图所示。
图1. JCP、JSR、RI和TCK的关系
下一篇:Java程序的分类