ava程序将文件从linux远程服务器复制到Windows客户端

ava程序将文件从linux远程服务器复制到Windows客户端

本文介绍了Java程序将文件从linux远程服务器复制到Windows客户端机器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以使用WINSCP将文件从linux服务器复制到我的Windows机器,它正在工作。现在我想创建一个java程序,将文件从远程linux服务器中的特定位置复制到我的windows机器。我试过这个,但它给出了一个错误无法发送通道请求

有没有其他方法可以将文件从linux复制到Windows,可能使用与WINSCP相同的概念,使用java?



我是什么尝试过:



I can copy files from linux server to my windows machine using WINSCP and it's working. Now I want to make a java program that copies files from a particular location in remote linux server to my windows machine.I tried this but it gives an error"failed to send channel request"
Is there any other way to copy files from linux to windows,that may use the same concept as WINSCP,using java?

What I have tried:

 package abc;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;

public class Copy
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        System.out.println(System.getProperty("os.name"));
        String hostname = "10.0.0.100";
        String username = "pratz";
        String password = "pratz";
        String copyFrom = ".";
        String copyTo = ".";
        JSch jsch = new JSch();
        Session session = null;
        System.out.println("Trying to connect.....");
        try {

            session = jsch.getSession(username, hostname, 22);
            session.setConfig("StrictHostKeyChecking", "no");
            session.setPassword(password);
            session.connect();
            Channel channel = session.openChannel("sftp");
            channel.connect();
            ChannelSftp sftpChannel = (ChannelSftp) channel;
            sftpChannel.get(copyFrom, copyTo);
            sftpChannel.exit();
            session.disconnect();
        } catch (JSchException e) {
            e.printStackTrace();
        } catch (SftpException e) {
            e.printStackTrace();
        }
        System.out.println("Done !!");



    }

}



这给出了一个例外


This gives an exception

com.jcraft.jsch.JSchException: failed to send channel request
Done !!

at com.jcraft.jsch.Request.write(Request.java:65)
at com.jcraft.jsch.RequestSftp.request(RequestSftp.java:47)
at com.jcraft.jsch.ChannelSftp.start(ChannelSftp.java:237)
at com.jcraft.jsch.Channel.connect(Channel.java:152)
at com.jcraft.jsch.Channel.connect(Channel.java:145)
at abc.Copy.main(Copy.java:34)

推荐答案


这篇关于Java程序将文件从linux远程服务器复制到Windows客户端机器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-29 23:01