首页 > 其他分享 >用Groovy思考 第三章 Groovy开发环境

用Groovy思考 第三章 Groovy开发环境

时间:2023-03-28 14:38:06浏览次数:31  
标签:Groovy groovy Shell Java 脚本 思考 第三章 Hello


用Groovy思考 第三章 Groovy开发环境

作者:chszs


本章将继续深入Groovy语言,首先学习Groovy脚本,包括从命令行编译和运行Groovy脚本,Groovy Shell,和Groovy Console。



你将学会使用Groovy语言来建立域对象、控制器和服务。而且使用Groovy的方法并非只有一种。另外,对于建立类,可以使用Groovy作为脚本语言。



例1:简单的Groovy脚本Hello.groovy



println "Hello ${args[0]}, may Groovy be with you."



执行以上代码:


PS D:\tmp\groovy> groovy Hello "Li Sir"


Hello Li Sir, may Groovy be with you.



在执行脚本的过程中,Groovy生成了一个与源文件同名的类文件,它包含main方法。



上面的代码如果换用Java来实现,会显得更为冗长。


public class HelloJava {


    public static void main(String[] args) {


        System.out.println( "Hello "+ args[0]+", may Java be with you." );


    }


}



1. 使用脚本函数



同大多数脚本语言那样,可以把Groovy脚本组织成可重用的代码块。这些块被称为函数。下面的例子说明了如何创建并使用一个函数。



def printFullName(firstName, lastName){


println "${firstName} ${lastName}"


}



printFullName('Luke', 'Skywalker')


printFullName('Li', 'Sir')




PS D:\tmp\groovy> groovy .\PrintFullName.groovy


Luke Skywalker


Li Sir



2. 编译Groovy



上面的例子省略了Groovy的编译过程,同Java一样,Groovy脚本也可以编译成字节码文件。如下所示:



PS D:\tmp\groovy> groovyc Hello.groovy



我们会看到目录下生成了一个名为Hello.class的字节码文件。但是,我们不能直接使用Java执行它。要使用Java执行它,需要这么做:



D:\tmp\groovy>java -cp %GROOVY_HOME%/embeddable/groovy-all-2.1.2.jar;. Hello "Li Sir"


Hello LiSir, may Groovy be with you.



可以使用java命令来运行Groovy程序,证明了Groovy就是Java。只需加上groovy-all-<version>.jar到类路径即可。



Groovy编译器是一个联合编译器,它可以同时编译Groovy代码和Java代码。Groovy联合编译器是1.5版本引入的,它来源于JetBrains公司的贡献(发明Intellij IDEA开发环境的公司)。联合编译器允许在单行编译语句中编译Groovy文件和Java文件。



示例:


Name.groovy代码:

public class SayHello{

 public static void main(String[] args){

 Name name = new Name();

 name.setFirstName(args[0]);

 System.out.println(name.toString());

 }

}


SayHello.java代码:

public class SayHello{

 public static void main(String[] args){

 Name name = new Name();

 name.setFirstName(args[0]);

 System.out.println(name.toString());

 }

}


联合编译:



D:\tmp>groovyc *.groovy *.java



执行代码:


D:\tmp>java -cp %GROOVY_HOME%/embeddable/groovy-all-2.1.2.jar;. SayHello


"Li Sir"


Hello Li Sir, Java calling Groovy



3. 运行Groovy



可以通过命令行、Groovy Shell、Groovy控制台等运行Groovy脚本和类。



3.1 命令行


在命令行下运行Groovy脚本有几个选择:



(1) 直接在命令行下使用groovy命令。


这种方式下,Groovy会产生一个包含脚本命令的带main()方法的类,编译脚本,并执行它。如果你不想每次运行时重新编译文件,你可以使用第三种选择。



(2) 编译groovy脚本为字节码文件,并使用Java执行。


正如之前的例子。



(3) Windows环境下可以让.groovy扩展名与groovy程序相关联。在Unix环境,使用下面的脚本可以实现同样的目的:


#!/usr/bin/groovy


println "Hello ${args[0]}, may Groovy be with you."



3.2 Groovy Shell



Groovy Shell是一个交互命令行程序,允许开发者创建、运行、保存、载入Groovy脚本和类。要启动Groovy Shell,只需运行groovysh。


D:\tmp\groovy>groovysh


Groovy Shell (2.1.2, JVM: 1.7.0_09)


Type 'help' or '\h' for help.


------------------------------------------------------------


groovy:000> 


用Groovy思考 第三章 Groovy开发环境_grails


在Groovy Shell下键入help,可以学习并使用一些Shell命令,



3.3 Groovy控制台



Groovy控制台是一个带图形界面的Groovy Shell。Groovy控制台使用SwingBuilder开发,使得开发更为方便。

用Groovy思考 第三章 Groovy开发环境_groovy_02

标签:Groovy,groovy,Shell,Java,脚本,思考,第三章,Hello
From: https://blog.51cto.com/prettycms/6154759

相关文章

  • 用Groovy思考 第四章 Groovy特性深入
    用Groovy思考第四章Groovy特性深入作者:chszs1.断言Java开发者常常使用JUnit或TestNG做单元测试,所以对断言是很清楚的。断言是用于验证假设的条件是否为真。在Groovy的断......
  • 用Groovy思考 第一章 用Groovy简化Java代码
    用Groovy思考 第一章用Groovy简化Java代码作者:chszs1.Groovy的安装目前Groovy的最新版本为2.1.2版,下载地址为:http://groovy.codehaus.org/Download下载后解压groovy-bin......
  • 关于两道笔试题的思考
    1.在32位机器上正确的输出是?structNode{boolval1;intval2;charstr[1023];};Node*p=newNode();std::cout<<sizeof(p)<<std::endl;std::cout......
  • 设计通用流程和可变点的方法一些思考
    平台化与中台设计:新问题与解决方案在从信息化到数字化的转型中,平台化一直是重要的主题之一。随着平台不断向业务领域延伸,平台抽象和建设的难度也呈指数级增加,出现了一系列......
  • 第三章 列表简介
    列表是什么#用[]来表示列表,列表中的元素用,隔开list=['element_one','element_two']#访问列表元素程序员的数学中开头的数字不是1,而是0print(list[0])#打印li......
  • 对于Vue3和Ts的心得和思考
    作者:京东物流吴云阔1前言Vue3已经正式发布了一段时间了,各种生态已经成熟。最近使用taro+vue3重构冷链的小程序,经过了一段时间的开发和使用,有了一些自己的思考。总的来说,Vu......
  • 对于Vue3和Ts的心得和思考
    作者:京东物流吴云阔1前言Vue3已经正式发布了一段时间了,各种生态已经成熟。最近使用taro+vue3重构冷链的小程序,经过了一段时间的开发和使用,有了一些自己的思考。总的来......
  • python工程里面的类型的思考
    虽然我的工程语言是python语言,在工程搭建过程中非常注意类型提示的问题。关于方法的方法的返回值类型的问题:常用的方式是在函数/方法书写一些尖头+类型,这样调用方能很方......
  • 由“交卷”功能引发的思考——对比两个字符串数组的差异
    最近在做一个答题系统,在交卷的时候需要判断客观题的答题情况客观题的题型有单选题、多选题、判断题其中判断题可以当做单选题处理,而单选题也可以当做标准答案长度为一的......
  • 章章个人的自我认知及一些思考及思想
    Q:我觉得我同学好聪明,其他课不学,只是学招聘和考研要求的内容。不像我,听着老师的水客=课,在那里生气,妄想改变这个社会和环境。我好愚蠢啊A:亲爱的同学,每个人有不同的学习方......