2013-05-17 137 views
1

調用Groovy腳本我想打電話從其他Groovy腳本Groovy腳本......任何人都可以幫我在這儘快..其他Groovy腳本

例如:

A類有一些代碼,它應該的B

class A{ 
    static main(args){ 

    println "Hello.. calling A Class" 
    } 
} 

叫我想創建一個新的類象B.groovy

class B{ 
    static main(args){ 

    // I need code for this to call A.groovy 
    } 
} 
+0

將它們放在同一個文件夾中。 Groovy標識同一目錄中的文件。然後,你可以做一個簡單的'新的A()',或者,因爲你正在使用靜態方法,'A.main args' – Will

+3

你似乎只接受過一個你的問題的答案......我沒有啓發 –

+0

你在跟蒂姆先生說什麼......我不明白你的意思? –

回答

2

認沽在腳本的頂部添加以下內容將加載groovy文件的內容。

evaluate(new File("/path/to/script/MyScript.groovy")) 

如果您需要經常這樣做,您也可以將其添加到groovy類路徑中。希望這可以幫助。

另外,如果你需要從你的腳本中運行其他腳本,你可以(對我有什麼啤酒?)黨執行下列操作...

def script = new GroovyShell(); 
def args = ['Hello World']; 
script.run(new File("/path/to/script/MyScript.groovy"), args as String[]); 
0

太晚了,但這裏I'll告訴你2更多風味:

1)還記得Java的CLASSPATH的概念嗎?這aplies Groovy的(因爲Groovy是Java的!):

「CLASSPATH變量就是告訴應用程序,包括JDK工具,到哪裏尋找用戶類的一種方式。」

爲了運行腳本B.groovy你必須告知A.groovy(A類)的位置:

常規-cp C:\常規\ yourscripts C:\常規\腳本\ B.groovy

命令上面告訴運行時查看c:\ groovy \ yourscripts文件夾,因爲我們有我們的類的地方nd我們需要他們成功運行B.groovy腳本。

2)使用GroovyClassLoader在運行時加載腳本和使用的代碼!

兩種方式都可以解決您的需求。現在下一個問題是什麼時候使用每個?