依赖用的是 jsch
官网是 http://www.jcraft.com/jsch/
import com.jcraft.jsch.*;
import java.io.File;
import java.util.Vector;
/**
* Created by tomoya at 2019-08-14
*/
public class SFTPUtil {
private static ChannelSftp channel;
private static Session session;
private static SFTPUtil sftpUtil;
private SFTPUtil() {
}
/**
* 初始化sftp连接,只有调完这个方法,才能用下面的方法
*
* @return
*/
public static synchronized SFTPUtil instance() {
if (sftpUtil == null) sftpUtil = new SFTPUtil();
return sftpUtil;
}
public static ChannelSftp initChannel(String host, String username, String password, String knowHostsFilename) {
try {
JSch jsch = new JSch();
// String knowHostsFilename = "/Users/hh/.ssh/known_hosts";
jsch.setKnownHosts(knowHostsFilename);
session = jsch.getSession(username, host);
session.setPassword(password);
session.connect();
Channel _channel = session.openChannel("sftp");
_channel.connect();
channel = (ChannelSftp) _channel;
return channel;
} catch (JSchException e) {
e.printStackTrace();
}
return null;
}
/**
* 下载文件
*
* @param remoteFile sftp服务器上文件路径
* @param localFile 下载到本地的文件路径
*/
public static void downloadFile(String remoteFi