FTP no Java.

SQL

Java

03/02/2017

Eu estou usando FTP para fazer o download de um arquivo do servidor para o meu PC através do meu programa, até aí tudo bem, o problema é que ele só funciona quando eu executo ele pela IDE.

segue abaixo meu código:
package classesPrincipais;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.swing.JOptionPane;
import org.apache.commons.net.PrintCommandListener;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

/**
 * @author U@O Corporation <suporte@uaocorporation.com.br>
 */
public class FTPConnect {
    public static FTPClient ftp = null;
    public FTPConnect(String host, String user, String pwd) throws Exception {
        JOptionPane.showMessageDialog(null, "Entrou no FTP");
        ftp = new FTPClient();
        ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
        int reply;
        ftp.connect(host);
        reply = ftp.getReplyCode();
        if (!FTPReply.isPositiveCompletion(reply)) {
            ftp.disconnect();
            throw new Exception("Exception in connecting to FTP Server");
        }
        ftp.login(user, pwd);
        ftp.setFileType(FTP.BINARY_FILE_TYPE);
        ftp.enterLocalPassiveMode();
        JOptionPane.showMessageDialog(null, "Saiu no FTP");
    }

    public void downloadFile(String remoteFilePath, String localFilePath) {
        JOptionPane.showMessageDialog(null, "Tentando Download no FTP");
        try {
            OutputStream output = new FileOutputStream(localFilePath);
            JOptionPane.showMessageDialog(null, "FTP");
            ftp.retrieveFile(remoteFilePath, output);
        } catch (IOException e) {
            System.out.println("Erro ao baixar: " + e);
        }
        JOptionPane.showMessageDialog(null, "Saiu");
    }

    public void disconnect() {
        if (ftp.isConnected()) {
            try {
                ftp.logout();
                ftp.disconnect();
            } catch (IOException f) {
                // do nothing as file is already downloaded from FTP server
            }
        }
    }

    public static void main(String FTPHost, String FTPUser, String FTPPassword,
            String FTPEndereco, String FTPLocal) {
        try {
            FTPConnect ftpDownloader = new FTPConnect(FTPHost, FTPUser, FTPPassword);
            ftpDownloader.downloadFile(FTPEndereco, FTPLocal);
            System.out.println("FTP File downloaded successfully");
            ftpDownloader.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
João Queiroz

João Queiroz

Curtidas 0
POSTAR