众所周知,Java跨平台的一直被众多Java程序员们津津乐道,“一次编写,到处运行”的设想着实令人心动,虽然会带来一定性能上的问题,但这并不妨碍大家对Java的喜爱,既然都说Java能跨平台,Java 也并不是凭空就能跑在任何机器上,这是不现实的,需要官方针对对应的平台,编译一套对应平台包括 Java 虚拟机(Java Runtime Environment 简称 JRE)在内的 Java 开发工具集(Java Develop Kit,简称 JDK),这样我们编写的 Java 代码才算是能“跨”这个平台。虽然理论上也可以自己根据字节码规范实现一套对应平台的 JDK,但是这很很明显只是理论上,因此我们这里只讨论官方支持的平台。
目前以比较老的 Java 6 为例,官网给出支持的有如下系统
#Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 #Solaris Solaris 在服务器领域使用较多,是Sun Microsystems研发的计算机操作系统。它被认为是UNIX操作系统的衍生版本之一。 目前Solaris仍旧属于私有软件。2005年6月14日,Sun公司将正在开发中的Solaris 11的源代码以CDDL许可开放,这一开放版本就是OpenSolaris。 #Windows Microsoft Windows,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。分为32位和64位两种架构。 #Linux Intel Itanium 这是运行于Itanium架构 CPU 的Linux系统,因为CPU架构不同,所以系统内核就要修改,因此JVM实现也与普通的Liunx版本不一样。Itaninm架构构建基于 IA-64(Intel Architecture 64)指令集架构,“。Itanium是当初设想是专门用在高端企业级64-bit计算环境中竞争的,对抗基于IBM Power4/5,HP PA-RISC,Sun UltraSparc-III及DEC Alpha的服务器。64位只是安腾处理器的一个技术特征。所有基于Intel安腾2处理器的系统都支持32Intel架构(IA-32)软件应用,从而用户移植到Intel安腾2架构提供了更高的灵活性。Intel提供了一种名为32位英特尔架构(IA-32)执行层(EL)的技术来支持32位英特尔架构(IA-32)软件应用,可惜的是这个架构已经失败了。 #Windows Intel Itanium 与上面的Linux类似,也是基于安腾架构重写了内核的系统
#Mac OS 在 Apple 官网也是能找到 Java 6 的 JDK 的。Mac OS是一套运行于苹果 Macintosh系列电脑上的操作系统,风格较为简约,比较注重使用效率和体验细节,虽然软件生态环境不上如 Windows,但这并不妨碍人们对它的热爱。
总结
其实基本上总共也就四个平台:Linux / Windows / Solaris / Mac OS,但可以说已经基本覆盖 99% 的计算机了,“一次编写到处运行”,真的不只是说说而已。