我是否需要在每个操作系统上安装JVM才能运行java软件或java编译的文件。

Java是独立于平台的,因为它先将代码编译后再由JVM转换为OS所理解的代码。 所以我怀疑,我是否需要在每个操作系统上安装JVM?

操作系统不理解没有任何翻译层的代码。 JVM理解代码。 您需要安装在您希望运行Java代码的任何机器上运行JVM的Java运行时(JRE)。 这是因为java不是像C或C ++那样的“本地”代码,而是需要将指令转换为JVM所执行的机器代码。

是的,你需要运行jvm才能执行.class文件。 这是一个相关的SO帖子,更详细的。

当java编译时,它不会直接编译到机器代码中。 它被编译成字节码 – 这个字节码不能被计算机自己读取,需要其他程序来解释它的代码。 这是JVM进来的地方,需要字节码,然后把它转换成计算机可以执行的机器码。

所以你需要一个JVM来运行由java编译器生成的字节码,尽管你不必特别安装一个。 将Java虚拟机与Java程序捆绑在一起是可能的,所以当用户下载你的程序的时候 – 他们已经安装了Java。

这具有能够运行在任何可以运行JVM的操作系统上的Java应用程序的主要优点。 这就是为什么java 写一次,在任何地方运行 。