怎样才能使程序具有跨平台运行的能力呢?这一点,Java最初走在了前列。
首先将Java源代码编译成与具体的操作系统和硬件无关的Java字节码(Java ByteCode)。在每种操作系统平台上安装相应的Java虚拟机,同样的Java字节码在不同的Java虚拟机支持下进行第二次编译,然后生成该平台上的机器代码,最后执行。
提示:这样的两次编译后的可执行代码称为托管代码(Managed Code)。托管代码的执行是应用系统直接和Java虚拟机打交道,Java虚拟机再和操作系统打交道。
正是因为Java这一特性使开发人员看到了曙光,所以Java今天已经成为和.NET分庭抗礼的一支奇葩,即使是微软这样的软件巨头也无法撼动其地位。
所以,并不存在一种放之四海而皆准的机器代码,所谓跨平台,只不过是增加了软件生产商的难度而已,既然开发人员不用考虑这种跨平台特性,那就让软件生产商忙活去吧。