Java JVM依赖于操作系统的哪些因素

Java JVM依赖于操作系统的哪些因素,java,c,jvm,Java,C,Jvm,我们知道Java是独立于平台的,但JVM是依赖于平台的。字节码由Java解释器转换成机器码。我想知道jvm依赖于操作系统的哪些因素。 我还想知道C语言对编译后的代码不能在其他操作系统中运行的源代码做了什么 tl;tr:C编译器将代码转换为机器代码。它将代码翻译成的机器代码取决于编译代码的位置和方式。JVM以同样的方式编译,但它的任务是运行java字节码。根据您运行的系统的不同,您安装了不同的JVM,JVM不同,但它们都知道如何处理相同的输入。我理解这一点,但我想知道JVM依赖于操作系统的哪些因素

我们知道Java是独立于平台的,但JVM是依赖于平台的。字节码由Java解释器转换成机器码。我想知道jvm依赖于操作系统的哪些因素。
我还想知道C语言对编译后的代码不能在其他操作系统中运行的源代码做了什么

tl;tr:C编译器将代码转换为机器代码。它将代码翻译成的机器代码取决于编译代码的位置和方式。JVM以同样的方式编译,但它的任务是运行java字节码。根据您运行的系统的不同,您安装了不同的JVM,JVM不同,但它们都知道如何处理相同的输入。我理解这一点,但我想知道JVM依赖于操作系统的哪些因素。@user172069您能重新表述最后的评论吗?这对我来说没有多大意义。当你在命令行中键入“java mypackage.MyClass”时,你实际上调用了java可执行文件,例如windows中的%PROGRAMFILES%/jdk/bin中的java.exe,或者linux中的/somepath/jdk/bin中的java可执行文件。Java.exe不能在linux上运行,linux可执行文件也不能在windows上运行。两者都将调用不兼容的依赖于系统的LIB,因为它们调用操作系统特定的API(用于文件处理、图形…),读取磁盘、写入磁盘、绘制到屏幕、从键盘读取、读取鼠标移动、打印等。