【问题标题】:SCP using ganymed / Java - no such file or directory?SCP 使用 ganymed / Java - 没有这样的文件或目录?
【发布时间】:2016-04-29 18:15:42
【问题描述】:

我正在尝试使用 Java 的 Ganymed 将文件从 Windows 服务器(安装了 openSSH / Cygwin)SCP 到 Mac。我以编程方式获取当前目录的路径,但由于某种原因,它说找不到本地目录。这绝对是正确的路径,所以我不知道发生了什么。

Connection conn;
String hostname = "10.10.1.2";
String username = "myuser";
String password = "mypass";

String localDir = System.getProperty("user.dir");
String remoteFile = "/path/to/the/file.txt";

Connection conn = new Connection(hostname);
conn.connect();
conn.authenticateWithPassword(username, password);
SCPClient scp = conn.createSCPClient();
scp.put(remoteFile, 2815, localDir, "0644");
conn.close();

因为我使用的是 .getProperty 方法,所以我知道路径是对的。此外,我有单独的方法可以 ssh 到 Windows 机器并启动/停止服务,所以我知道凭据是正确的。那么为什么这不起作用呢?谢谢!

【问题讨论】:

    标签: java scp


    【解决方案1】:

    我收集此代码在 Mac 上运行,它应该将文件从 Windows 系统复制到 mac?

    scp.put(remoteFile, 2815, localDir, "0644");
    

    put() 操作将文件从本地系统传输到远程系统。您想调用get(),它将文件从远程系统传输到本地系统。将 put() 行替换为如下内容:

    scp.get(remoteFile, localDir);
    

    【讨论】:

    • 首先 - 谢谢!不知道我是怎么错过的。不过,我仍然遇到问题,事实证明原因是因为documentation 指的是比current version 更旧的版本。我在我的 pom.xml 中切换到版本 build210 并且能够使用写的 ganymed 没有问题。 (添加此内容以供任何人将来参考)
    • github.com/vahidhedayati/RemoteSSH/commit/… scp.put 我试过但缺乏关于如何使用它的真实信息我最终使用了 SFTPv3Client,它也是 hudson 在 build260 上所做更改的一部分提供的
    猜你喜欢
    • 2019-06-03
    • 2013-10-11
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 2011-08-26
    • 2015-09-25
    • 2018-01-28
    • 2019-02-19
    相关资源
    最近更新 更多