gpt4 book ai didi

java - 在 Java 应用程序中使用 ftp4j 库下载/上传时出现 FTP 错误

转载 作者:行者123 更新时间:2023-11-29 07:15:12 25 4
gpt4 key购买 nike

我想在 java 应用程序中下载一个文件,当我尝试它时,它会在我的硬盘驱动器上创建该文件,但随后无法完全下载它。我正在使用 ftp4j 库来执行此操作。

import it.sauronsoftware.ftp4j.*;
public class Main {
public static void main (String args[]){
FTPClient client = new FTPClient();
try{
client.connect("ftp.myaddress.comlu.com");
client.login("username", "password");
System.out.println("Connection created");
client.download("public_html/ZScreen.png", new java.io.File("d:/xxx/ZScreen.png"));
System.out.println("Download successful");
client.disconnect(true);
}
catch (Exception FTPException){
System.out.println("Shit hit the fan");
}
}
}

我总是会创建连接,但很糟糕。另外,在我的硬盘驱动器上创建了一个文件,但它的大小是 0 字节。

这是堆栈竞赛

Connection created
java.net.SocketException: Connection reset
Shit hit the fan
at java.net.SocketInputStream.read(SocketInputStream.java:189)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:126)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:112)
at java.io.InputStreamReader.read(InputStreamReader.java:168)
at it.sauronsoftware.ftp4j.NVTASCIIReader.readLine(NVTASCIIReader.java:105)
at it.sauronsoftware.ftp4j.FTPCommunicationChannel.read(FTPCommunicationChannel.java:142)
at it.sauronsoftware.ftp4j.FTPCommunicationChannel.readFTPReply(FTPCommunicationChannel.java:187)
at it.sauronsoftware.ftp4j.FTPClient.openPassiveDataTransferChannel(FTPClient.java:3538)
at it.sauronsoftware.ftp4j.FTPClient.openDataTransferChannel(FTPClient.java:3473)
at it.sauronsoftware.ftp4j.FTPClient.download(FTPClient.java:3302)
at it.sauronsoftware.ftp4j.FTPClient.download(FTPClient.java:3213)
at it.sauronsoftware.ftp4j.FTPClient.download(FTPClient.java:3078)
at Main.main(Main.java:9)

最佳答案

显然 Windows 7 防火墙 上有一个错误 与在 IPv6 上使用 FTP 有关,这可以解释你的问题。查看错误报告 here .

以下任何一种解决方法都应该足以修复它:

  • 在 Windows 控制台中以管理员身份运行以下命令:

    netsh advfirewall 设置全局 StatefulFtp 禁用

  • 使用以下选项运行 JVM:-Djava.net.preferIPv4Stack=true

关于java - 在 Java 应用程序中使用 ftp4j 库下载/上传时出现 FTP 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10166337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com