运行时环境究竟是如何工作的?

How exactly do runtime environments work?

我在理解这整件事时遇到了一些困难。我知道 运行time 环境本质上是一个虚拟机,它位于操作系统之上并允许应用程序 运行 完全跨平台,但我只是不明白 如何 它可以做到这一点。难道不同的操作系统不一样吗?一个运行时间环境如何在所有操作系统上运行?

问题是,幕后还有很多您从未听说过的事情。运行时环境是在多个级别构建的,每个级别都越来越接近您作为开发人员所看到的。 他们首先通过,并为每个操作系统重写最低级别的连接器,以指向机器上的不同位置。然后,随着级别的提高,它越来越接近相同,直到您拥有完整的 运行time 环境,它在每种类型的计算机上看起来(几乎)相同。我说几乎是因为翻译并不总是完美的。如果您 运行 具有内置 GUI 的程序 Java,您就会看到这一点。 Java 使用平台默认按钮,因此在 Mac 上,它们是 Mac 样式按钮,而在 Windows、Windows 样式按钮上,即使它是完全相同的程序。