Java使用sftp实现Linux服务器与Linux服务器之间文件的传输
时间: 2024-02-12 08:16:17 浏览: 89
要在Java中使用SFTP协议实现Linux服务器与Linux服务器之间的文件传输,可以使用JSch库。以下是一个简单的示例代码:
```
import com.jcraft.jsch.*;
public class SftpExample {
public static void main(String[] args) {
String host = "remote-host";
String username = "remote-username";
String password = "remote-password";
int port = 22;
try {
JSch jsch = new JSch();
Session session = jsch.getSession(username, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
// 上传文件
String localFilePath = "/path/to/local/file";
String remoteDirPath = "/path/to/remote/directory";
sftpChannel.put(localFilePath, remoteDirPath);
// 下载文件
String remoteFilePath = "/path/to/remote/file";
String localDirPath = "/path/to/local/directory";
sftpChannel.get(remoteFilePath, localDirPath);
sftpChannel.disconnect();
session.disconnect();
} catch (JSchException | SftpException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们通过JSch库创建了一个SSH会话,并使用SFTP协议打开了一个SFTP通道。然后我们可以使用`put`方法上传本地文件,或使用`get`方法下载远程文件。最后,我们关闭了SFTP通道和SSH会话。
阅读全文