鉴于 Java(语言)是平台独立的,为什么 JVM 不是平台独立的?

新手上路,请多包涵

只是想知道什么时候 java 是平台独立的,那么 JVM 是平台依赖的具体原因是什么。

原文由 giri 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 485
2 个回答

除非你有一个可以直接执行 Java 字节码的 CPU(有这样的东西),否则你需要能够与操作系统交互(比如读取文件、连接到网络、显示到屏幕等……)。

您可以用其他语言(例如 JavaJavaScript )编写 JVM,但最终需要能够与底层操作系统交互的东西。

原文由 TofuBeer 发布,翻译遵循 CC BY-SA 2.5 许可协议

我发现这是对这个问题的一个很好的回答:

JVM 将字节码翻译成机器语言

每个 Java 程序都被编译成一种称为 Java 字节码的中间语言。 JVM 用于将字节码翻译成特定计算机的机器语言,并实际执行相应的机器语言指令。 JVM 和字节码的结合赋予了 Java 作为一种“可移植”语言的地位。

机器语言依赖于操作系统

鉴于先前的信息,应该更容易推断出问题的答案。由于 JVM 必须将字节码翻译成机器语言,并且由于机器语言取决于所使用的操作系统,因此很明显 JVM 是平台(操作系统)相关的。这个事实可以通过尝试下载 JVM 来验证——你会得到一个对应于不同操作系统的 JVM 列表,你显然会选择适合你正在运行的操作系统的 JVM。

引自 JVM 平台依赖吗?

原文由 aashish 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题