jsch设置代理_sftp – 如何使用代理WITH JSCH库来FTP文件

我想ftp文件到远程位置,我必须使用代理服务器.我可以通过以下命令连接到FTP位置:

sftp -o "ProxyCommand /usr/bin/nc -X connect -x : %h %p" username@ftp_server:

但我想自动化这个文件传输过程,我使用Jsch for FTP和代码片段如下:

String sourceFile = sourceDir + fileName;

JSch jsch = new JSch();

int port = Integer.parseInt(getFtpPort());

Session session = jsch.getSession(getUserName(), getHost(), port);

session.setConfig(STRICT_HOST_CHECKING, ANSWER);

session.setProxy(new ProxyHTTP(, ));

session.setPassword(getPassword());

session.connect();

Channel channel = session.openChannel(FILE_PROTOCOL);

channel.connect();

sftpChannel = (ChannelSftp) channel;

sftpChannel.cd(desDir);

File fileToTransfer = new File(sourceFile);

sftpChannel.put(new FileInputStream(fileToTransfer), fileName);

上面的代码我得到以下异常:

Caused by: com.jcraft.jsch.JSchException: ProxyHTTP: java.io.IOException

at com.jcraft.jsch.ProxyHTTP.connect(ProxyHTTP.java:158)

at com.jcraft.jsch.Session.connect(Session.java:210)

at com.jcraft.jsch.Session.connect(Session.java:162)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值