1.3        J2ME与其他的 java平台

J2ME一直是定位于java 在小设备上的开发的,但是,就像我们在开始提到的一样,这里也存在和正在使用的其他的相同领域的java平台。以下我们就简要地总结一下可选择的平台并且与J2ME平台进行比较。

1.3.1 JavaCard

JavaCard是一种定位于智能卡技术的平台。智能卡是java平台存在的最小环境。这些设备的限制如JavaCard虚拟机和java类库的最小集合使得它只需要16KB的非易失存储和512字节易失存储。J2ME没有扩展到很小资源的平台,所以目前没有J2ME配置适合智能卡。你可以在网站http://java.sun.com/products/javacard/.

1.3.2 EmbeddedJava

 嵌入式java是基于JDK1.1平台的,用来在嵌入式设备上创建软件。这些设备通常拥有32位的处理器和可以供虚拟机、类库和嵌入式应用使用的512KBROMRAM。因为嵌入式设备往往只有一个目的,它没有必要包含不需要的java 平台的部分。实际上,嵌入式java允许实现者移除任何不需要的包和类——甚至一个类中的方法,为了使最终的产品适合可用存储要求。嵌入式java规范,可以在http://java.sun.com/products/embeddedjava/上找到,定义了最大的可能的平台而不是最小的(J2ME的通常使用)。

嵌入式java目前正在进入其生命的最后时期,这意味着到2003年一月他将不会被支持。将来,嵌入式系统的开发者将会转移到CLDC和它的一个概要,它将会面向拥有类似资源的设备。

1.3.3 个人javaPersonalJava

  个人java面向的是嵌入式java更为通用的应用环境。个人java的目标设备拥有2MBROM和至少1MBRAM来提供给java平台本身,应用程序则需要更多的存储空间。一些更大的PDA和通信设备,如康柏的iPAQ和诺基亚9210蜂窝电话,目前正在使用个人java的环境

个人java是基于JDK1.1.8的,包含了java虚拟机的完整特性。这个规范,可以在http://java.sun.com/products/personaljava/, 标示出JDK1.1.8每一个核心包是否需要,修改或者可选。需要的包必须包含对应的JDK1.1.8平台所有类而且必须是完全实现。一个可选的包可能包含或者可能不包含,但是如果包含了,那必须是完整的。一个修改的包必须是包含的,但是依据规范它可能与JDK1.1.8平台对应的部分有所区别。个人Java以一个修改得java.awt的形式包含用户接口组件,并且它对于支持RMI的可选的。

个人java开发者希望使用CDC作为一个转移路径移植到java 2平台。因为个人java包含了用户接口,必须等待个人基础概要和个人概要可以获得才进行转移。使用RMI的个人java应用也将需要使用CDC RMI概要