java - 导入 Java 库 groovy

标签 java groovy

我想在我的 groovy 脚本中使用 apache.common.net 库中定义的方法。

我首先下载并将其包含在我的配置中:

            this.class.classLoader.rootLoader.addURL(new URL("file:///${currentDir}/lib/commons-net-3.3.jar"))

然后我尝试像这样在我的 groovy 脚本中使用它(明确说明:import pimpim.* 也导入上面的 classLoader):

    import pimpim.*

import org.apache.commons.net.ftp.*

def pm = PM.getInstance("test")


public class FileUploadDemo {
  public static void main(String[] args) {
    FTPClient client = new FTPClient();

我还尝试了几个像“导入”这样的注释

import org.apache.commons.net.ftp.FTPClient

但我一直收到这个错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Y:\pimconsole\scripts\ftp.gy: 11: unable to resolve class FTPClient
 @ line 11, column 15.
       FTPClient client = new FTPClient();

我错过了什么?抱歉,我对 groovy 还是陌生的:/

最佳答案

因此,您可以在启动脚本时将其添加到类路径中;

groovy -cp .;lib/commons-net-3.3.jar ftp.gy

或者,你可以在你的脚本中添加一个@Grab注解,Groovy会在运行前下载依赖并将其添加到类路径中(但是如果你的脚本是在一个无法访问 Maven 的框);

@Grab('commons-net:commons-net:3.3')
import org.apache.commons.net.ftp.*

...rest of your script...

或者如果您尝试,您上面的类路径黑客攻击路径应该有效:

this.getClass().classLoader.rootLoader.addURL(new File("lib/commons-net-3.3.jar").toURL())

关于java - 导入 Java 库 groovy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32180388/

相关文章:

java - JAXB:类转换异常,但类具有相同的名称

java - Overriding 和 exception 之间的矛盾

jenkins - 如何正确使用Jenkins管道 `options`

groovy - 您能摆脱Groovy “each”的关闭吗?

java - 未初始化的最终局部变量与未初始化的最终实例变量

java - 将 YAML 列表映射到 Spring Boot 中的对象列表

java - 如何验证接受整数或 .5 值的 double 值 (Java)

Groovy:使用 GroovyInterceptable 的 println 与 System.out.println

java - 内存不足 : metaspace with wildfly and groovy/jasper

java - spring bean 初始化取决于可变数量的其他 bean