Java:system.net.url的FTP身份验证

Java:system.net.url的FTP身份验证,java,authentication,ftp,download,Java,Authentication,Ftp,Download,我需要从ftp下载一个使用基本身份验证的文件 我试着像这里指出的那样设置Authenticator类:但我似乎无法让它进行身份验证。 每次我下载文件时,它总是显示无效的用户名或密码 我做错什么了吗?如何确保调用了验证器 以下是我用来下载文件的代码: Authenticator.setDefault( new Authenticator() { @Override public PasswordAuthentication getPa

我需要从ftp下载一个使用基本身份验证的文件

我试着像这里指出的那样设置
Authenticator
类:但我似乎无法让它进行身份验证。 每次我下载文件时,它总是显示无效的用户名或密码

我做错什么了吗?如何确保调用了验证器

以下是我用来下载文件的代码:

Authenticator.setDefault(
        new Authenticator() {
            @Override
            public PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(
                      username, password.toCharArray());
             }
        }
);

PrinterJob job = PrinterJob.getPrinterJob();
for (PrintService printer : PrintServiceLookup.lookupPrintServices(null, null))
{
    if(printer.getName().equalsIgnoreCase(targetPrinters[i]))
    {
        job.setPrintService(printer);
    }
}

PDDocument doc;
URL url = new URL("ftp", "10.16.20.73", 21, file);
doc = PDDocument.load(url);
doc.silentPrint(job);
i++;

对于那些可能感到疑惑的人,我最终使用了不同的方法来访问ftp文件

我把用户名和密码放在url字符串中,这可能不是最好的方法,但对我的情况来说是有效的

这是我使用的url字符串:

ftp://user:password@somewhere.com/pub/somefile.xxx