当前位置: 首页 > 知识库问答 >
问题:

使用java从本地窗口机器复制文件到远程窗口机器

卫焕
2023-03-14

我搜索了很多,但找不到解决方案。我需要使用java程序将文件从本地windows计算机复制到远程windows计算机。我试过用JSch,

JSch jsch = new JSch();
    Session session = null;
    session = jsch.getSession("username","hostname",22);
    session.setPassword("password");
    session.setConfig("StrictHostKeyChecking", "no");
        session.connect();
    ChannelSftp channel = null;
    channel = (ChannelSftp)session.openChannel("sftp");
    channel.connect();
        File localFile = new File("filePath");
        //If you want you can change the directory using the following line.
        channel.cd("E:/xxx");
    channel.put(new FileInputStream(localFile),localFile.getName());
        channel.disconnect();
    session.disconnect();

在执行上述代码时,我面临以下错误,

Exception in thread "main" 2: No such file
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846)
at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:2340)
at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:342)

我在远程windows计算机上安装了cygwin。Jsch似乎无法找到windows路径。将文件从windows计算机复制到linux计算机时,相同的代码可以正常工作。

请告诉我上述问题的解决方案,或者是否有其他方法可以在java中实现?谢谢

共有1个答案

连时铭
2023-03-14

要解析带有驱动器号的Windows路径,可能需要使用/cygdrive前缀。在这种情况下,应该使用参数/cygdrive/e/xxx调用cd方法调用。

 类似资料:
  • 我正在使用Jsch(JCraft)库与SSH服务器建立SSH连接,如下所示: SSH连接已成功建立,因为“严格主机密钥检查”已禁用。如果启用,我会收到以下错误: 我知道我们需要在代码中设置已知主机文件,如下所示: 我无法通过以下命令生成known_hosts文件: 它抛出以下错误: 我只有.ppk格式的公钥和私钥。我没有known_host文件 如何创建known_host文件 为什么ssh ke

  • 我有一个test.sh文件,我想把这个文件从本地计算机复制到远程服务器。我怎么能做到这一点?我尝试使用,但它不起作用。也许我做错了什么。

  • 有人知道是否可以从Windows的命令提示符或控制台窗口复制文本,比如命令、控制台应用程序或批处理文件的输出吗?

  • 我在远程VPS上的docker-compose网络中运行容器。我希望能够从我的本地主机访问在这些容器中运行的数据库。 例如,如果容器和位于VPS上的容器网络中,我希望从计算机的访问。Kubernetes的CLI允许使用。 编辑:我已经接受了Ali Tou的回答,但是,如果能看到一个不需要重新启动容器来重新配置其端口以将它们暴露到主机上的解决方案,那就太好了。 编辑2:我在一篇相关的文章https:

  • 本文向大家介绍excel-vba 调试器本地窗口,包括了excel-vba 调试器本地窗口的使用技巧和注意事项,需要的朋友参考一下 示例 通过“本地”窗口,可以轻松访问正在运行的函数或子例程范围内的变量和对象的当前值。它是调试代码并逐步进行更改以查找问题的必要工具。它还允许您浏览可能不知道的属性。 请看下面的例子, 在VBA编辑器中,单击查看->本地窗口 然后,通过在子例程内单击后使用F8逐步执行

  • 我有一个Python脚本,打开火狐。有没有办法让我在后台运行它,并抑制窗口弹出?类似于