您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > Groovy轻松入门
Groovy轻松入门——搭建Groovy开发环境.............................................................1Groovy轻松入门——通过与Java的比较,迅速掌握Groovy(更新于2007.09.23).................................................................................................................2Groovy轻松入门——Grails实战之遗留框架利用篇...................................................52Groovy轻松入门——搭建Groovy开发环境既然是入门,我先不介绍那些IDE的东西,比如Eclipse中的Groovy插件(如果您迫不及待的话,可以先看一下安装Groovy的Eclipse插件),我先讲一下如何设置Groovy的环境变量(我目前所用的系统是WindowsXP),最后运行一个Hello,world程序告终。Groovy既然是Java帝国的王储,当然少不了Java的支持。0,先安装JDK(推荐版本为1.5及1.5以上,当然1.4也可以)然后设置Java的环境变量:1,设置环境变量java_home(设置环境变量XXX_home的一个好处是只要修改XXX_home的值,与之相关的%XXX_home%\bin等的值都相应改变,这样就能做到‘一处修改,处处修改’)右击‘我的电脑’-‘属性’-‘高级’-‘环境变量’-点击‘新建’(用户变量与系统变量均可,挑一便是)-输入‘变量名’为java_home-输入‘变量值’为JDK的所在目录(默认安装位置为C:\ProgramFiles\Java\jdk1.6.0,我装的是JDK6.0)-点击‘确定’-环境变量java_home设置成功2,设置环境变量path环境变量java_home设置好之后,我们开始设置环境变量path前面的步骤与‘设置环境变量java_home’相同,到点击‘新建’按钮时,选择新建用户变量(因为系统变量path已经存在,如果追加在长串已存在的path值后面,比较凌乱)-输入‘变量名’为path-输入‘变量值’为“%java_home%\bin;”不包括双引号“”3,设置环境变量classpath环境变量path设置好之后,我们开始设置环境变量classpath前面的步骤与‘设置环境变量java_home’相同,到点击‘新建’按钮时,选择新建系统变量(我的个人习惯,你也可以选择新建用户变量)-输入‘变量名’为classpath-输入‘变量值’为“.;%java_home%\lib;”不包括双引号“”,注意不要漏了最前面的小圆点.如果你已经安装了JDK,并设置好了Java环境变量,请跳过上述过程,直接安装GDK(只需3步)(如果您下载的是Groovy安装版DownloadWindows-Installer:BinaryRelease,请将安装过程中出现的选项都打上勾,以下4,5,6步骤可以跳过)请留意朝花夕拾——Groovy&Grails中的Groovy最新稳定版的版本号4,下载GDK()并将下载的groovy-1.0.zip文件解压到指定位置(我的位置是D:\D\MY_DEV\groovy),5,设置环境变量GROOVY_HOME步骤与“设置环境变量java_home”类似,到输入‘变量名’时,输入‘GROOVY_HOME’-输入‘变量值’为你解压指定位置(我的变量值为D:\D\MY_DEV\groovy),需要注意一点,解压目录如D:\D\MY_DEV\groovy中不可有空格,比如D:\D\MYDEV\groovy6,将GROOVY_HOME目录下的bin追加到环境变量path中步骤与“设置环境变量path”类似,找到你设置的path,然后将“%GROOVY_HOME%\bin”追加到path值(按上述过程,你现在的path为“%java_home%\bin;”)之后,你的path值为“%java_home%\bin;%GROOVY_HOME%\bin”,注意用英文分号;分开,不要有空白字符如空格,Tab等最后,我想提醒大家的是,不要将GROOVY_HOME目录下的jar包(比如GROOVY_HOME\embeddable\groovy-all-1.0.jar)添加到环境变量classpath中,因为Groovy自己会将GROOVY_HOME\lib下的所有jar文件(其中包括了Groovy相关的jar文件,如groovy-1.0.jar)添加到Groovy的classpath中,而groovy同样会用Java的classpath(系统变量中的classpath),如果将Groovy相关jar文件如groovy-all-1.0.jar添加到环境变量classpath中,jar文件会产生冲突,今后的Groovy生活(如利用Grails方便快捷地开发Web应用)就将成为泡影:)好了,现在请大家打开Windows下的dos,即‘命令行’,在那个黑底白字的窗口中输入“groovyConsole”,回车,过一会儿就会出现一个GroovyConsole的窗口,在上面的文本域中,输入println'Hello,world!'//打印Hello,world!然后按Ctrl+R来运行你的第一个Hello,world程序,在下面的窗口中便可看到运行结果:Hello,world!祝贺你,第一个Groovy程序运行成功!Groovy轻松入门——通过与Java的比较,迅速掌握Groovy在前几篇文章中,我已经向大家介绍了Groovy是什么,学习Groovy的重要性等内容,还不了解Groovy的朋友不妨去看看我Blog中的Groovy分类。下面我将通过Groovy与Java的比较,解开Groovy的神秘面纱。Ready?Start!注意:本教程是针对Groovy最新版本编写的Groovy和Java的相同点有:3+,4+,6+,8+,10+,12+,13,14,15,18+,20+,21,22,23,28+,29+,30+,31+,32++表示Groovy不但涵盖了Java的语法,而且还有增强部分Groovy和Java的不同点有:0,1,2,5,7,9,11,16,17,19,24,25,26,27下面所列序号不分先后顺序:0.在Groovy可以用def定义无类型的变量(定义变量方面def与JavaScript中的var相似),和返回值为无类型的方法,而在Java中没有defGroovy:classMan{defname=山风小子defintroduce(){returnI'm$name//return可以省略}}1.Java中的equals方法对应Groovy中的==,而Java中的==(判断是否引用同一对象)对应Groovy中的is方法eg.Test1.java:publicclassTest{publicstaticvoidmain(String[]args){Stringname1=山风小子;Stringname2=newString(山风小子);//Groovy中写为name1==name2if(name1.equals(name2)){System.out.println(equal);}else{System.out.println(notequal);}//Groovy中写为name1.is(name2)if(name1==name2){System.out.println(identical);}else{System.out.println(notidentical);}}与Test1.java相对应的Test1.groovy:Stringname1=山风小子//你也可以这样写:defname1=山风小子其中的def可以理解为JavaScript中定义变量的varStringname2=newString(山风小子)//请注意Groovy的句尾的分号时可选的,即可要可不要,前提是一行代码一条语句//Java中写为name1.equals(name2)if(name1==name2){System.out.println(equal);}else{System.out.println(notequal);}//Java中写为name1==name2if(name1.is(name2)){System.out.println(identical);}else{System.out.println(notidentical);}2.Java中的数组定义int[]a={1,2,3};在Groovy写成int[]a=[1,2,3]3.Java中的for循环for(inti=0;ilen;i++){...}在Groovy中还可以写成for(iin0..len-1){...}或者for(iin0..len){...}//groovy1.5也支持for(;;)Java:for(inti=0;ilen;i++){//dosomething}Groovy:for(inti=0;ilen;i++){//dosomething}//或者for(iin0..len-1){//dosomething}//或者for(iin0..len){//dosomething}4.Java中的方法返回写为return;或者returnobj;在Groovy的方法中return是可选的Java:publicStringsayHello(){returnHello,山风小子;}Groovy:publicStringsayHello(){returnHello,山风小子}//或者publicStringsayHello(){Hello,山风小子}//或者StringsayHello(){Hello,山风小子}//或者publicsayHello(){Hello,山风小子}//或者defsayHello(){Hello,山风小子}5.Java中的innerclass即内部类,在Groovy中用Closure实现(Closure是Java7正在考虑的一个特性,比innerclass在语义方面更完善)6.Groovy中的注释比Java多了首行注释#!,其他与Java相同比如单行注释://多行注释:/**/或者是支持javadoc的/***/Java:/**多行注释*//***javadoc注释*///单行注释Groovy:#!首行注释,使Unixshell能够定位Groovy启动程序以运行Groovy代码,例如#!/usr/bin/groovy/**多行注释*//***javadoc注释*///单行注释7.Java5中的for-each:for(Typet:iteratable){...}在Groovy中,for(tiniteratable){...}Java:for(Typet:iterable){//dosomething}Groovy:for(tiniterable){//dosomething}8.Groovy中switch语句与Java中相同,不过支持更多类型了,比如String9.Groovy的while语句跟Java相同,但废弃了do-while(考虑到语义方面的问题,而且do-while可以用其他形式的循环语句代替,使用频率低)10.Java中的String常量表示为Hello,山风小子,在Groovy中可如下表示//双引号Hello,山风小子//单引号也可以'Hello,山风小子'//多行字符串Hello,山风
本文标题:Groovy轻松入门
链接地址:https://www.777doc.com/doc-6315646 .html