有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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)
    ...
}

我希望我的问题足够清楚。。。 非常感谢你的帮助


共 (2) 个答案

  1. # 1 楼答案

    必须有人来编译它们。如果将它们放在jar之外,但放在类路径中,则必须将它们编译到。为系统初始化文件以拾取它们

    最好的办法是使用您提到的脚本引擎,它在内部“编译”它们(而不保存类)。这使得你们学校的课程有点难。jar可以灵活地访问外部groovy脚本,但这可能是最好的

  2. # 2 楼答案

    如果您的jar是在groovy上下文中创建的,那么您只需将groovy文件(类)添加到classpath文件夹中即可。groovy类加载器在访问时自动编译它们

    否则,创建一个groovy引擎,用groovy文件添加到类路径目录