只是好奇知道什么时候java独立于平台,那么JVM是否有任何特定的原因使平台依赖...
JVM执行Java代码,但是使用特定于平台的语言编写,例如C/C++/ASM等.JVM不是用Java编写的,因此不能与平台无关.
除非你有一个可以直接执行Java字节码的CPU(有这样的东西),你需要能够与操作系统交互(例如读取文件,连接到网络,显示到屏幕等等).
您可以使用其他语言(例如Java或JavaScript)编写JVM,但最终需要能够与底层操作系统交互.
我发现这是一个很好的答案:
JVM将字节码转换为机器语言
每个Java程序都被编译成一种称为Java字节码的中间语言.JVM用于将字节码转换为特定计算机的机器语言,并且实际上也执行相应的机器语言指令.JVM和字节码的组合使Java成为一种"可移植"语言.
机器语言取决于操作系统
鉴于以前的信息,应该更容易推断出问题的答案.由于JVM必须将字节码转换为机器语言,并且由于机器语言取决于所使用的操作系统,因此很明显JVM依赖于平台(操作系统).这个事实可以通过尝试下载JVM来验证 - 您将获得与不同操作系统相对应的JVM列表,您显然会选择正在运行的操作系统的目标JVM.
引用来自JVM平台是否依赖?
JVM必须依赖于平台才能允许Java在特定平台上运行.用于Windows的JVM将Java转换为与用于OS X的JVM不同的系统调用.