java导入外部(未编译)groovy类,并将它们保留在jar之外
我在Eclipse中创建了一个Groovy项目。 我想构建一个可执行的jar,将我的一些groovy文件源保存在jar之外,以便在运行时修改和重新加载它们
我知道我可以使用GroovyScript引擎实现这一点:
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)
...
}
我希望我的问题足够清楚。。。 非常感谢你的帮助
# 1 楼答案
必须有人来编译它们。如果将它们放在jar之外,但放在类路径中,则必须将它们编译到。为系统初始化文件以拾取它们
最好的办法是使用您提到的脚本引擎,它在内部“编译”它们(而不保存类)。这使得你们学校的课程有点难。jar可以灵活地访问外部groovy脚本,但这可能是最好的
# 2 楼答案
如果您的jar是在groovy上下文中创建的,那么您只需将groovy文件(类)添加到classpath文件夹中即可。groovy类加载器在访问时自动编译它们
否则,创建一个groovy引擎,用groovy文件添加到类路径目录