https://liumiaocn.blog.csdn.net/article/details/90137145
除了GDK,Groovy还提供了一些内嵌的工具,这篇文章对于Groovy周边的一些简单工具进行概要性的说明。
在第一个sample的例子中,一行的groovy代码
liumiaocn:~ liumiao$ cat hello.groovy
println "Hello, Groovy"
liumiaocn:~ liumiao$
通过groovy命令执行输出
liumiaocn:~ liumiao$ groovy hello.groovy
Hello, Groovy
liumiaocn:~ liumiao$
而在这个例子中使用的groovy就是就常用的工具之一,而实际上groovy中使用的startGroovy,而在startGroovy中设定了JAVA_OPTS等基本信息,因为是ASCII格式的脚本内容,有兴趣的可以进一步研究。groovy还有很多常用的方式,比如
hello.groovy中只有一条语句,这种情况可以不必通过文件保存,直接使用groovy命令中通过-e传入执行命令即可,同样打印Hello Groovy的信息,可以使用如下命令达到这一目的。
liumiaocn:~ liumiao$ groovy -e 'println "Hello, Groovy"'
Hello, Groovy
liumiaocn:~ liumiao$
在语句头上加入如下信息,可以使得具有执行权限的groovy脚本在Linux或者Unix下具有使用dot命令符(.)直接执行的能力
文件首行内容:#!/usr/bin/env groovy
文件示例
liumiaocn:~ liumiao$ cat hello.groovy
#!/usr/bin/env groovy
println "Hello, Groovy"
liumiaocn:~ liumiao$
设定权限之后,可以直接执行
liumiaocn:~ liumiao$ chmod 755 hello.groovy
liumiaocn:~ liumiao$ ./hello.groovy
Hello, Groovy
liumiaocn:~ liumiao$
这个结果显示了groovy作为脚本语言的直接特性,但是有兴趣的读者可以自行读一下groovy和相关调用的文件,就会了解到groovy只是把运行在JVM上的方式进行了简化而已,该少的一样也不会少,只是在使用者的角度是透明的而已。
很多脚本型语言都提供了交互式可以执行的方式,比如ruby和python,groovy也提供了一个叫做groovysh的工具,通过groovysh可以交互执行groovy语句,如果在groovysh中确认println "Hello, Groovy"的结果,只需要输入语句之后回车即可
liumiaocn:~ liumiao$ groovysh
Groovy Shell (3.0.0-alpha-4, JVM: 1.8.0_191)
Type ':help' or ':h' for help.
---------------------------------------------------------------------------------------------------------------------------------------
groovy:000> println "Hello, Groovy"
Hello, Groovy
===> null
groovy:000>
可以看到期待输出的信息被打印到了终端输出,而null则是命令的返回值为空,所以提示为null,比如我们来确认一下1==2这样一条语句的返回值,这可以看到
groovy:000> 1==2
===> false
groovy:000> 1==1
===> true
groovy:000>
确认一下生命、宇宙和一切的答案:
groovy:000> 10+32
===> 42
groovy:000>
注:相关的梗请参看
ctrl + D可以退出
groovyConsole是一个简单的图形方式的groovy代码工具,只需要通过groovyConsole命令即可将其启动,界面较为简单
可以通过groovyConsole进行groovy代码的文件保存、打开、编辑、执行等常见功能,同样需要执行输出Hello Groovy的信息,可以在groovyConsole中进行groovy语句的直接编写
然后可以通过按钮或者快捷键的方式执行上述语句(MacOS下为Command键 + R)
IDEA和Eclipse都有相关的Groovy的插件,功能显然更为强大,本文更多介绍Groovy自带的简单工具,其他IDE的插件使用此处不再赘述
如同java和javac一样,有groovy也有groovyc,通过groovyc也可以对groovy文件进行java字节码编译,生成class文件
liumiaocn:~ liumiao$ cat hello.groovy
println "Hello, Groovy"
liumiaocn:~ liumiao$ groovyc hello.groovy
liumiaocn:~ liumiao$ ls hello.*
hello.class hello.groovy
liumiaocn:~ liumiao$
除此之外,Groovy还提供了java2groovy等转化工具,在本文中就不再赘述