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腳本文件了