簡體   English   中英

導入外部(未編譯)的groovy類,並將其保留在jar中

[英]Import external (not compiled) groovy classes and keep them outside the jar

我在Eclipse中創建了一個Groovy項目。 我想構建一個可執行jar,將一些常規文件源保留在jar外,以便可以在運行時對其進行修改和重新加載。

我知道我可以使用GroovyScriptEngine做到這一點:

Class modelClass = new GroovyScriptEngine( "path_to_file" ).loadScriptByName( "Model.groovy" ) ;
Object modelInstance = modelClass.newInstance() ;

現在,我的問題是:是否可以例如在我的主類中簡單地使用:

import Model

class Main {
static void main(String[] args) {
    Model model = new Model(args)
    ...
}

我希望我的問題很清楚...非常感謝您的幫助!

如果您的jar在groovy的上下文中,那么您可以將groovy文件(類)添加到classpath文件夾中。 groovy類加載器會在訪問時自動編譯它們。

否則,創建一個groovy引擎,將groovy文件添加到classpath目錄。

必須要編譯一些東西。 如果將它們保留在jar之外,但位於類路徑中,則必須將它們編譯為.class文件,系統才能將它們拾取。

最好的選擇是使用您提到的ScriptEngine在內部“編譯”它們(而不保存類)。 這使得.jar中的類很難靈活地訪問外部groovy腳本,但這可能是最好的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM