java库做FTP操作

时间:2012-06-20 04:42:30

标签: ftp java

我有一组基于部署的活动,也涉及

  1. 将FTP从dev机器传输到基于linux的服务器,
  2. 在linux盒子上执行某些脚本。
  3. 通过创建一个执行这些FTP活动的基于Java的小实用程序,可以自动执行这些活动。

    以下是我的问题:

    1. 是否有用于执行FTP操作的java库(如apache commons net,http://commons.apache.org/net/)?
    2. 是否有开源库通过FTP调用shell脚本并根据脚本输出执行某些操作?
    3. 请注意,我不是在论坛中寻找解决我特定问题的方法;我更感兴趣的是在这里寻找技术/ java库的替代品和建议。

3 个答案:

答案 0 :(得分:4)

我们非常有apache commons net library来执行ftp操作。

you can view this link:

                        http://commons.apache.org/net/

Download the commons-net-ftp-2.0 lib from the above site.

I am also attaching my program to upload and download song to ftp server using the apache lib

上传:

public void goforIt(){


        FTPClient con = null;

        try
        {
            con = new FTPClient();
            con.connect("192.168.2.57");

            if (con.login("Administrator", "KUjWbk"))
            {
                con.enterLocalPassiveMode(); // important!
                con.setFileType(FTP.BINARY_FILE_TYPE);
                String data = "/sdcard/vivekm4a.m4a";

                FileInputStream in = new FileInputStream(new File(data));
                boolean result = con.storeFile("/vivekm4a.m4a", in);
                in.close();
                if (result) Log.v("upload result", "succeeded");
                con.logout();
                con.disconnect();
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }






    }

<强>你下载过:

public void goforIt(){
    FTPClient con = null;

    try
    {
        con = new FTPClient();
        con.connect("192.168.2.57");

        if (con.login("Administrator", "KUjWbk"))
        {
            con.enterLocalPassiveMode(); // important!
            con.setFileType(FTP.BINARY_FILE_TYPE);
            String data = "/sdcard/vivekm4a.m4a";

            OutputStream out = new FileOutputStream(new File(data));
            boolean result = con.retrieveFile("vivekm4a.m4a", out);
            out.close();
            if (result) Log.v("download result", "succeeded");
            con.logout();
            con.disconnect();
        }
    }
    catch (Exception e)
    {
        Log.v("download result","failed");
        e.printStackTrace();
    }



}

答案 1 :(得分:2)

由于您提到了PuTTY(SSH客户端),您应该查看JSch库。它提供SSH访问,使您能够安全地传输文件和远程执行shell脚本。

答案 2 :(得分:1)

我们在高效的环境中使用ftp4j。例如,它具有HTTP代理,SOCKS代理,FTPS和FTPES支持。

要执行shell脚本,您必须使用像these ones这样的ssh库。