Java能在没有JVM的情况下编译源代码吗?

Java能在没有JVM的情况下编译源代码吗?,java,compilation,jvm,javac,Java,Compilation,Jvm,Javac,我正在详细搜索JVM,以了解其工作原理并正确使用Java编程语言,因此,除了独立于操作系统之外,JVM对Java编译有多重要。JVM不会编译代码,它会解释。 Java是一种解释语言和编译语言。 Java编译器“Javac”生成与平台无关的字节码。我们可以说,这个字节码是通用的,也就是说,它不包括特定于每个平台的机器级详细信息。 CPU不能直接运行此字节码中的指令。 因此,需要一些其他的“程序”来解释代码,并给出它可以执行的CPU机器级指令。这个程序就是“JVM”(Java虚拟机) 请注意,JVM

我正在详细搜索JVM,以了解其工作原理并正确使用Java编程语言,因此,除了独立于操作系统之外,JVM对Java编译有多重要。

JVM不会编译代码,它会解释。

Java是一种解释语言和编译语言。 Java编译器“Javac”生成与平台无关的字节码。我们可以说,这个字节码是通用的,也就是说,它不包括特定于每个平台的机器级详细信息。 CPU不能直接运行此字节码中的指令。 因此,需要一些其他的“程序”来解释代码,并给出它可以执行的CPU机器级指令。这个程序就是“JVM”(Java虚拟机)
请注意,JVM是特定于平台的。

JVM与编译java代码无关。
JVM
完全负责运行已经编译好的代码。有很多用于编译java代码的软件,例如
JDK
中包含的
javac
编译器,或大多数IDE中的集成编译器,还有一些单独的编译工具,如
gradle
ant
,如果使用主编译器,则需要JVM

JVM不影响编译,只需要它,因为主编译器实际上是Java程序本身,运行Java程序需要JVM


理论上,编译器是编译Java代码所需的唯一工具。事实上,只有编译器生成的字节码。JVM允许您的计算机运行Java程序,并且不会影响编译过程

然而,Java的主编译器是用Java编写的要运行主编译器,您需要一个JVM。


如果您使用的编译器是用其他语言编写的,那么就不需要JVM来编译代码。

JVM是运行编译后的代码所必需的。编译器是编译代码所需的唯一工具,JVM与编译无关。同样,编译器是用Java编写的,因此您需要JVM来运行编译器。Java不会在意的。这很重要,因为Java编译器是用Java编写的。不是必须的,而是它。为什么要生成字节代码而不使用JVM?有一个用C++编写的废弃java编译器(),它不依赖于JVM运行时。“单独编译工具<代码> javac < /Case>”用java编写,你的答案不正确。我已经编辑了答案。其他的东西也错了
gradle
ant
不是独立的编译工具,它们都依赖于
javac
并添加依赖项解析和管理。所有广泛使用的最新Java编译器实际上都在JVM上运行。我所说的“独立编译工具”是指专门用于编译Java代码的程序,而不是它们是否使用
javac
编译器。但是,这与这里的重点无关,当然,
javac
要求JVM运行,就像其他Java程序一样,但编译时并不绝对需要它,这是问题最初提出的问题。除非您使用的是您提到的工具,否则“编译时不绝对需要它”。这没什么意义。