WEB开发网
开发学院软件开发Java 实战 Groovy: Groovy:Java 程序员的 DSL 阅读

实战 Groovy: Groovy:Java 程序员的 DSL

 2009-09-28 00:00:00 来源:WEB开发网   
核心提示: 清单 3. 尝试在 CLASSPATH 中没有 Groovy JAR 的情况下运行经过编译的 Groovy 类$javaHelloGroovyWorldExceptioninthread"main"java.lang.NoClassDefFoundError:groovy/l

清单 3. 尝试在 CLASSPATH 中没有 Groovy JAR 的情况下运行经过编译的 Groovy 类

$ java HelloGroovyWorld
Exception in thread "main" java.lang.NoClassDefFoundError: groovy/lang/Script

如前述,Groovy JAR 必须包含在 CLASSPATH 中。再次尝试执行代码,这一次把 -classpath 实参传递到 java 中,如清单 4 所示:

清单 4. 用 java 命令成功运行经过编译的 Groovy 类

//For UNIX, Linux, and Mac OS X
$ java -classpath $GROOVY_HOME/embeddable/groovy-all-x.y.z.jar:. HelloGroovyWorld
Hello Groovy World
//For Windows
$ java -classpath %GROOVY_HOME%/embeddable/groovy-all-x.y.z.jar;. HelloGroovyWorld
Hello Groovy World

现在您已经取得了一些进展。但是为了证明 Groovy 脚本真正地保留 Java 示例的语义,您需要深入钻研字节码。首先,输入 javap HelloJavaWorld,如清单 5 所示:

清单 5. 解释 Java 字节码

$ javap HelloJavaWorld
Compiled from "HelloJavaWorld.java"
public class HelloJavaWorld extends java.lang.Object{
  public HelloJavaWorld();
  public static void main(java.lang.String[]);
}

除了为您添加了 javac 编译器之外,这段代码中不应当有过多令人惊讶之处。您无需显式输入 extends java.lang.Object 或提供类的默认构造函数。

现在,输入 javap HelloGroovyWorld,如清单 6 所示:

清单 6. 解释 Groovy 字节码

$ javap HelloGroovyWorld
Compiled from "HelloGroovyWorld.groovy"
public class HelloGroovyWorld extends groovy.lang.Script{
  ...
  public static void main(java.lang.String[]);
  ...
}

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:实战 Groovy Groovy

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接