Scala和Java为静态语言,Groovy为动态语言
Scala: 函数式编程,同时支持面向对象
Groovy: jvm上的脚本,较好兼容java语法,Groovy加强了Java集成。
可配置化的优势,可以将一些简单的逻辑公开给外部编辑和使用,增强了互操作性,复杂逻辑来说,可配置化代码的调试则会比较麻烦
Scala和Java互相调用
Scala调用java
定义java类,直接调用方法,或者直接import,再调用即可。
Java调用Scala
静态方法直接传递参数调用即可,非静态方法,new对象再调用方法
Groovy和Java互相调用
Groovy调用Java
groovy 调用 Java class ,只需要在类前导入该 Java 类,在 Groovy 代码中就可以无缝使用该 Java 类,可方便接入java sdk
this.class.classLoader.rootLoader.addURL(new URL("file:///${currentDir}/lib/commons-net-3.3.jar")
User gradle
jar.archiveName 'warO.jar'
jar.manifest {
attributes 'Main-Class' : 'net.codetojoy.waro.Main'
attributes 'Class-Path' : 'jars/groovy-all-1.6.4.jar jars/guava-collections-r03.jar jars/guava-base-r03.jar'
}
#!/usr/bin/env groovy -cp ojdbc5.jar
Java 调用 Groovy
通过JAVA来加载如一个groovy脚本文件,然后调用该脚本中的方法
GroovyClassLoader invokeMethod
loader.parseClass(new File)
或者
通过设定CLASSPATH来初始化groovy脚本引擎,可以运行该path下的任何groovy脚本文件了