groovy - groovy 是 JVM 原生的还是移植到 JVM 的?

标签 groovy jvm

我知道 Jython 和 JRuby 被移植到 JVM,Scala/Clojure 是 JVM 原生的,那么 Groovy 呢? Groovy 看起来像一种动态语言,我猜它是移植的,但它似乎也可以编译。
对于 Scala 等 JVM 原生的语言,是否有一些工具可以将代码反编译为源代码?

最佳答案

“移植”通常意味着“重新定位以继续运行”。 Groovy 旨在将 Python 和 Smalltalk 等语言的动态特性引入 Java。它被设计为 Java 的扩展,从这个意义上说,它是 JVM 和 Java 语言的 native 。 (Groovy 语言、对象模型和运行时库是 Java 的扩展。)

但听起来您是在问 Groovy 是被解释的还是被编译的。您可以使用 groovyc 将 Groovy 源代码编译为 Java .class 文件并在 JVM 中运行它们(链接到一些 Groovy 运行时库)。或者,您可以在 GroovyShell 中以交互方式运行 Groovy 源代码,但它所做的是为您增量编译、加载和运行代码。

网络搜索 [ groovy decompiler ] 为您返回一些可能性。

关于groovy - groovy 是 JVM 原生的还是移植到 JVM 的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29532919/

相关文章:

grails - 在Grails中跨多个月的集合中按月选择项目

java - 在 groovy 中定义带有类型的变量

grails - 没有方法签名适用于参数类型 : () values: []Possible solutions:(java. lang.Object), (java.lang.Object)

java - 如何使用单独的类加载器并在同一个 JVM 中运行? (OSGI)

java - 我在哪里可以在 Windows PC 上永久设置 Java 堆大小?

java - < 和有什么区别? extends Base> 和 <T extends Base>?

java - Groovy:无法将类 'null' 的对象 'null' 转换为类 'double' 。尝试改为 'java.lang.Double'

groovy - Groovy 中的 Logback 配置以及 Gradle/Idea 中的不同类路径

java.lang.OutOfMemory错误: Java heap space

java - Java 中的 Linux 命令 "write all used jars by JVM to file"