簡體   English   中英

在Java應用程序中使用ftp4j庫下載/上傳時出現FTP錯誤

[英]FTP error while downloading/uploading with ftp4j library in java application

我想在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有關的錯誤 ,該錯誤可以解釋您的問題。 在這里查看錯誤報告。

以下任一變通辦法應足以解決此問題:

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

    netsh advfirewall set global StatefulFtp disable

  • 使用以下選項運行JVM: -Djava.net.preferIPv4Stack=true

您無權在該文件夾上寫。 檢查資源庫是否不處於“只讀”狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM