编辑:
我将保留我以前的答案,因为JSch仍然在许多地方使用,但是如果需要更好地文档说明的库,则可以使用sshj。如何使用它执行sftp的示例是:
SSHClient ssh = new SSHClient();ssh.loadKnownHosts();ssh.connect("host");try { ssh.authPassword("username", "password"); SFTPClient sftp = ssh.newSFTPClient(); try { sftp.put(new FileSystemFile("/path/of/local/file"), "/path/of/ftp/file"); } finally { sftp.close(); }} finally { ssh.disconnect();}使用JSch(例如,Ant使用的java ssh库),您可以执行以下操作:
Session session = null;Channel channel = null;try { JSch ssh = new JSch(); ssh.setKnownHosts("/path/of/known_hosts/file"); session = ssh.getSession("username", "host", 22); session.setPassword("password"); session.connect(); channel = session.openChannel("sftp"); channel.connect(); ChannelSftp sftp = (ChannelSftp) channel; sftp.put("/path/of/local/file", "/path/of/ftp/file");} catch (JSchException e) { e.printStackTrace();} catch (SftpException e) { e.printStackTrace();} finally { if (channel != null) { channel.disconnect(); } if (session != null) { session.disconnect(); }}您可以通过这种方式直接使用JSch,也可以通过Commons VFS使用JSch
,但是您必须同时拥有Commons vfs jar和jsch jar。



