FTP站点工作,但我无法从Java程序连接。我得到java.net.UnknownHostException

时间:2010-11-19 17:21:36

标签: java exception upload ftp edtftpj

问候人们。

我有这个奇怪的问题。在我正在进行的项目中,我需要将文件上传到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库。我的环境是从Java 7 64位计算机上运行的Java 1.6(32位)上的Eclipse Helios(32位)。

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

2 个答案:

答案 0 :(得分:9)

消息

  

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

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

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

答案 1 :(得分:1)

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

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

如果确实需要为Java进程设置代理,请参阅How do I configure proxy settings for Java?