java动态加载groovy_如何在动态加载的groovy文件中使用import

本文探讨了如何在Java程序中动态加载包含import语句的Groovy文件。通过示例代码展示了在GroovyClassLoader中设置类路径以解决无法解析import的问题,同时解释了遇到的错误和解决方案。
摘要由CSDN通过智能技术生成

我试图为我的用户提供一种方法,通过动态加载他们的源文件来为主要的groovy应用程序提供插件 . 但他们的groovy文件包含import语句,我不知道如何使它们工作,即使有一个明显好的类路径 .

主应用程序是shell脚本bin / top.sh:

#!/bin/bash

groovy-2.4.1/bin/groovy -cp lib lib/Top.groovy

lib / Top.groovy类:

public class Top {

public static void main(String[] args) {

ClassLoader parent = getClass().getClassLoader()

GroovyClassLoader loader = new GroovyClassLoader(parent)

Class groovyClass = loader.parseClass(new File("UserPlugin.groovy"))

GroovyObject groovyObject = (GroovyObject) groovyClass.newInstance()

groovyObject.invokeMethod("run",args)

}

}

用户类UserPlugin.groovy:

// The following import can be found in the classpath

// passed by the shell script (under lib/, next to Top.groovy)

import Lib

class UserPlu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值