我想在我的 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/