【问题标题】:Running Unix command , after connecting through ftp using java使用 java 通过 ftp 连接后运行 Unix 命令
【发布时间】:2015-07-10 09:36:44
【问题描述】:

我无权使用 ssh/sftp(使用私钥/公钥)。所以ftp是我唯一的选择。

以下代码对我来说很好,从 Unix 机器获取文件,但我的座右铭是使用 java 从 Windows 登录到 UNIX 机器,然后从我的主目录转到另一个目录并使用grep,然后将该输出复制回我的 windows java 程序。我正在寻找如何在框中执行一些 Unix 命令。就像我们在 shell/python/ant 中做的那样......

new URL("ftp://user:password@url/sourcefile;type=i");
            URLConnection con = url.openConnection();
            BufferedInputStream in = 
                new BufferedInputStream(con.getInputStream());
            FileOutputStream out = 
                new FileOutputStream("Targetfile");

【问题讨论】:

    标签: java shell unix ftp


    【解决方案1】:

    如果你有用户名和密码,那么你可以去 Jsch 库。
    看看这个或直接运行它!
    http://www.jcraft.com/jsch/examples/Shell.java.html


    同样,您可以从这里获得所有 shell 命令。

    【讨论】:

    • OP 说他不能使用 SFTP。
    • 非常感谢Shubham 现在我正在使用 Jsch ,它工作得很好。
    【解决方案2】:

    FTP 是一种文件传输协议。它不是通用的远程访问协议。它没有内置支持客户端在 FTP 服务器上运行任意命令。

    FTP 确实有一个名为 SITE 的命令,它允许在服务器上运行自定义命令。要使用它,FTP 服务器的管理员必须设置满足您需要的自定义命令。然后,您必须使用真正的 FTP 客户端库来调用远程服务器上的站点命令——在 FTP URL 上调用 openConnection() 不会让您调用站点命令。

    【讨论】:

    • 非常感谢 Kenster,我正在拐弯抹角地为 ftp 开辟道路,现在我知道这是不可能的,不再浪费时间了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 2010-10-08
    • 2015-08-01
    • 1970-01-01
    • 2015-06-29
    • 2017-08-10
    相关资源
    最近更新 更多