2012-02-06 71 views
1

我正在加載Groovy腳本的Java項目。除了引用其他常規腳本的Groovy腳本(在本例中爲實用程序類)之外,一切都按預期工作。每當包含所述實用程序類的腳本執行時,插件加載程序會拋出一個異常「groovy.lang.MissingPropertyException:沒有這樣的屬性:Util. ​​在Java中嵌入groovy,groovy.lang.MissingPropertyException:沒有這樣的屬性:

在我懷疑Java代碼有問題之前,我想先了解Groovy如何「發現」其他類如果我在eclipse中運行這個項目,並且包含所有這些groovy腳本的整個項目目錄都在類路徑中,那麼所有groovy腳本都應該能夠彼此「查找」嗎?

或任何其他想法?

+5

我們可能需要看到你用來執行groovy的代碼 – 2012-02-06 19:28:21

回答

1

Groovy在腳本和類之間有區別如果Groovy文件包含一些類定義之外的代碼,那麼它是考慮一個腳本,它被編譯成一個位於默認包中的類(不管在package聲明中設置了什麼)。

我不知道你怎麼稱呼Groovy腳本,但如果你使用GroovyShell類這一點,那麼GroovyShell有一個構造函數與ClassLoader類型的參數,你可以通過你當前的類加載器到或您的自定義類加載器其中包含您編譯的其他Groovy腳本。或者,如果使用GroovyScriptEngine,則可以將引用傳遞到腳本所在的目錄,並且引擎會爲您編譯它們,並使其可用於該目錄中的其他腳本。

有關將Groovy嵌入Java的更多信息,請訪問:http://groovy.codehaus.org/Embedding+Groovy

但一般來說,我需要更多地瞭解你的設置(文件夾結構,構建工具,你在編譯過程中編譯groovy代碼,如何從java運行groovy代碼,如何從groovy中調用groovy腳本,你是否組織你的類路徑等)給你更精確的建議。

相關問題