【发布时间】:2013-08-09 20:09:10
【问题描述】:
我正在尝试编写一个 JAVA 程序来连接到 FTP。我已经从 apache 下载了 .JAR 文件并将其添加到我的项目中的 LIB 文件夹中。
当我尝试按照以下代码连接到 FTP 时,我得到 java.net.UnknownHostException
如果我使用
ftp:// subdomain.example.com - java.net.UnknownHostException
ftp.subdomain.example.com - java.net.UnknownHostException
ftp://example.com - java.net.UnknownHostException
ftp.example.com - 有效!
我所有的文件都在 ftp://subdomain.example.com/,我不想更改 FTP 中的任何内容。
如果我尝试在 Google Chrome 浏览器中打开 ftp://subdomain.example.com/,它会询问我的用户名和密码。
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
public class ConnectToFTP {
public static final void main(String[] args) throws SocketException, IOException {
FTPClient ftp = new FTPClient();
try {
ftp.connect("ftp://subdomain.example.com");
} catch (Exception e) {
System.out.println("The Error : " + e.toString());
}
System.out.println("login: "+ftp.login("username", "password"));
}
}
【问题讨论】:
-
你试过
ftp://ftp.subdomain.example.com吗?我没在你的清单上看到。 -
我刚才试过了,ftp:// ftp.subdomain.example.com 也给出了 java.net.UnknownHostException ......为了清楚起见,ftp:/ 之间没有空格/ 和 ftp.subdomain.example.com
-
我认为您对主机是什么以及
ftp://的含义有误解。主机是服务器的名称,即在您的情况下为subdomain.example.com。ftp://是浏览器使用不同协议的一种方式(默认情况下它们使用http://)。因此,作为主机,您应该在删除ftp://前缀后使用您在 Google Chrome 中使用的相同值 -
subdomain.example.com 呢?