Groovy 命令行命令“groovy”似乎将 Groovy 源文件 (.groovy) 编译为 .class 文件,然后运行它(如果它是脚本)。
为什么没有等效的命令来编译和运行 .java 文件是否有充分的理由?*
为什么我们需要做两个步骤?
javac XXX.java
java XXX
为什么不只是
java XXX
?
*也许我大错特错了,有这样的事情
Groovy 命令行命令“groovy”似乎将 Groovy 源文件 (.groovy) 编译为 .class 文件,然后运行它(如果它是脚本)。
为什么没有等效的命令来编译和运行 .java 文件是否有充分的理由?*
为什么我们需要做两个步骤?
javac XXX.java
java XXX
为什么不只是
java XXX
?
*也许我大错特错了,有这样的事情
你能做到吗?是的。编写一个运行javac
后跟java
.
这是个好主意吗?好吧,这由你决定。但我想你会发现 runningjavac
其次比 runningjava
花费的时间要java
长得多。因此,除非您通常只运行一次 Java 程序,否则将这两个步骤分开是有意义的。
所以 ...
为什么没有等效的命令来编译和运行 .java 文件是否有充分的理由?
是的。因为您通常希望编译(构建)并作为单独的步骤运行......出于性能原因。
Groovy 是一种动态语言。所以没有编译步骤。它是写->执行。当您使用 Groovy 开发应用程序时,您发布的是您编写的实际源代码。Java 是一种静态语言。当您使用 Java 开发某些东西时,您会执行 write->compile->execute。一旦您开发了应用程序,您发布的就是编译后的代码。这就是为什么有一个单独的命令“javac”来编译代码并生成您将运送给客户的工件。当然,在开发时直接运行 java 代码要容易得多。大多数IDE都提供了这个。例如:在 Eclipse 中,您可以只运行一个具有 main 方法的 Java 类。
==================================
编辑:对于投反对票的人:-)
我概述了 Groovy 和 Java 的不同意图。Groovy 旨在成为一种动态/脚本语言。因此,像许多其他此类语言一样,没有“编译”步骤。Java 本来就是一种静态语言。因此,在您进行静态类型检查的地方存在一个“编译”步骤。