java 连接sftp,使用java连接到SFTP

本文介绍了如何使用Java的JSch库连接到SFTP服务器,提供了一个示例代码,但在实际运行时遇到了"Connection timed out"的错误。通过增加JSch连接超时设置为30000毫秒解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I need help with connection to SFTP server? Does anybody have working code?

I found something like this

package test.JSch;

import com.jcraft.jsch.*;

public class TestJSch {

public static void main(String args[]) {

JSch jsch = new JSch();

Session session = null;

try {

session = jsch.getSession("USSERNAME", "HOST", 22);

//session.setConfig("StrictHostKeyChecking", "no");

session.setPassword("PASSWORD");

System.out.println("1");

session.connect();

System.out.println("2");

Channel channel = session.openChannel("sftp");

System.out.println("3");

channel.connect();

System.out.println("4");

ChannelSftp sftpChannel = (ChannelSftp) channel;

sftpChannel.get("remotefile.txt", "localfile.txt");

sftpChannel.exit();

session.disconnect();

} catch (JSchException e) {

e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.

} catch (SftpException e) {

e.printStackTrace();

}

}

}

but this was the output

com.jcraft.jsch.JSchException: java.net.ConnectException: Connection timed out: connect

at com.jcraft.jsch.Util.createSocket(Util.java:258)

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

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

at test.JSch.TestJSch.main(TestJSch.java:17)

Caused by: java.net.ConnectException: Connection timed out: connect

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.(Unknown Source)

at java.net.Socket.(Unknown Source)

at com.jcraft.jsch.Util.createSocket(Util.java:252)

... 3 more

what is wrong with this code?

解决方案

You can try increasing the timeout on Jsch Framework.

session.connect(int Timeout)

session.connect(30000);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值