一位开发者使用Groovy语言编写了一个脚本,并使用groovyc工具将其编译成可在JVM上运行的字节码。随后,他尝试在一个未安装任何Java Development Kit (JDK) 的服务器上执行该字节码,但该服务器已安装了兼容JVM规范的JRockitVM。那么,下列描述哪一项最为准确?
答案解析
选项A错误,groovyc生成的字节码是符合JVM规范的,可以在兼容JVM规范的任何虚拟机上运行,不依赖于JDK本身的存在,JDK主要是用于编译和开发。选项D错误,JRockitVM虽然没有JDK的所有库,但Groovy程序所依赖的Java标准类库已经包含在Groovy运行时库里,不需要JDK,选项C是正确的。Groovy程序运行时除了需要JVM,还需要Groovy Runtime环境来支持其语言特性。即使JRockitVM可以运行字节码,但它并不包含Groovy运行时所需的类库,所以该字节码需要额外的Groovy运行时支持才能执行。选项B错误,仅仅兼容JVM规范是不够的,还需要Groovy运行时库。
正确答案:C