问候人们。
我有这个奇怪的问题。在我正在进行的项目中,我需要将文件上传到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位)。
任何有关解决此问题的见解将不胜感激。谢谢你的时间。
答案 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?。