3

问候各位。

我有这个奇怪的问题。在我现在正在进行的项目中,我需要将文件上传到 FTP 站点。我以前写过很多这样的程序,它们运行得很好。但是这个特定的网站给我带来了麻烦。当我尝试从程序上传文件时,我得到了具体的信息:

java.net.UnknownHostException: ftp://site.com

但是,当我尝试从浏览器(Chrome、IE)或 Windows 资源管理器中连接到同一站点时,我能够找到该站点并正常登录。我厌倦了张贴图片,但由于我是新手,我被阻止这样做。

所以我现在很难过。如果我无法从 Windows 连接,那么我可以假设这是一个 FTP 服务器问题。这仅在 Java 程序中发生在我身上。而且我也知道我的代码可以像我之前在很多场合使用过的那样工作。这是我使用的代码:


public void uploadFile(String fileName) throws Exception {
        FileTransferClient ftpClient = null;

        try {
            ftpClient = new FileTransferClient();
            ftpClient.setRemoteHost(gv.ftpHost);
            ftpClient.setRemotePort(21);
            ftpClient.setUserName(gv.ftpUserName);
            ftpClient.setPassword(gv.ftpPassword);
            ftpClient.getAdvancedFTPSettings().setConnectMode(FTPConnectMode.PASV);
            ftpClient.connect();

            ftpClient.uploadFile(gv.irp + fileName, fileName, WriteMode.OVERWRITE);
        }
        catch (Exception e) {
            throw new Exception("Error occured in uploadFile()\n" + e);
        }
        finally {
            if (ftpClient != null) {
                if (ftpClient.isConnected()) {
                    ftpClient.disconnect();
                }
                ftpClient = null;
            }
        }
    }

我使用 edtFTPj 库。我的环境是在 Windows 7 64 位机器上运行的 Java 1.6(32 位)上的 Eclipse Helios(32 位)。

任何有关解决此问题的见解将不胜感激。谢谢你的时间。

4

2 回答 2

9

讯息

java.net.UnknownHostException: ftp://site.com

强烈建议您尝试打开与名为“ ftp://site.com ”的主机的连接,不幸的是,这是一个 url 而不是主机名,因此找不到。

尝试更改您的代码,使其连接到“site.com”。

于 2010-11-19T17:33:32.297 回答
1

UnknownHostException意味着 Java 网络库无法通过 DNS 查找将提供的主机名转换为 IP 地址。

您是否为浏览器配置了某种代理服务器?我能想到的是,如果某些应用程序(浏览器)可以解析主机名而其他(Java)不能解析,您必须设置一些替代网络配置。

请参阅如何为 Java 配置代理设置?如果您确实需要为您的 Java 进程设置代理。

于 2010-11-19T17:28:29.393 回答