1

我有一组基于部署的活动,其中还涉及

  1. 进行从开发机器到基于 linux 的服务器的 FTP 传输,以及
  2. 在 linux 机器上执行某些脚本。

可以通过创建一个基于 Java 的小型实用程序来执行这些 FTP 活动,从而使这些活动自动化。

以下是我的问题:

  1. 是否有执行 FTP 操作的 java 库(如 apache commons net、http://commons.apache.org/net/)?
  2. 是否有开源库可以通过 FTP 调用 shell 脚本并根据脚本输出执行某些操作?

请注意,我不是在论坛中寻找针对我的特定问题的解决方案;我更感兴趣的是从这里的成员那里寻找技术/java 库的替代方案和建议。

4

3 回答 3

4

的,我们非常有 apache commons net 库来执行 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();
    }



}
于 2012-06-20T04:58:09.223 回答
2

既然您提到了 PuTTY(一个 SSH 客户端),您可能应该看看JSch库。它提供 SSH 访问,让您能够安全地传输文件和远程执行 shell 脚本。

于 2012-06-20T05:07:47.910 回答
1

我们在生产环境中使用ftp4j 。例如,它支持 HTTP-Proxy、SOCKS-Proxy、FTPS 和 FTPES。

要执行 shell 脚本,您将不得不使用像这些这样的ssh 库。

于 2012-06-20T05:17:11.903 回答