java 连接sftp服务器
时间: 2023-05-28 11:07:46 浏览: 446
可以使用JSch库实现Java连接SFTP服务器。下面是一个简单的示例:
1. 首先需要导入JSch库,可以通过Maven依赖或手动下载。
2. 创建一个JSch对象,并使用其getSession方法来连接SFTP服务器:
```
JSch jsch = new JSch();
Session session = jsch.getSession(username, hostname, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no"); // 必须设置,否则会报com.jcraft.jsch.JSchException: UnknownHostKey错误
session.connect();
```
3. 使用session.openChannel方法打开SFTP通道:
```
ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp");
sftp.connect();
```
4. 可以使用sftp.put方法上传文件,sftp.get方法下载文件,sftp.ls方法列出远程目录等操作,具体使用方法可以参考JSch的文档。
5. 最后需要关闭连接:
```
sftp.disconnect();
session.disconnect();
```
完整示例:
```
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class SFTPExample {
public static void main(String[] args) throws Exception {
String username = "username";
String password = "password";
String hostname = "hostname";
int port = 22;
JSch jsch = new JSch();
Session session = jsch.getSession(username, hostname, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp");
sftp.connect();
// 可以使用sftp.put方法上传文件,sftp.get方法下载文件,sftp.ls方法列出远程目录等操作
// 具体使用方法可以参考JSch的文档
sftp.disconnect();
session.disconnect();
}
}
```
阅读全文