使用JSCH库, 使用Java创建sftp客户端变得非常容易。
JSch是SSH2的纯Java实现(我们可以使用SFTP Channel)。 JSch允许你连接到sshd服务器并使用端口转发, X11转发, 文件传输等, 并且可以将其功能集成到你自己的Java程序中。 JSch已获得BSD样式许可。
【如何在Android中使用JSCH(SFTP)从服务器删除文件】你可以使用以下代码通过Java从设备上的远程服务器中删除文件:
// Remember use the required imports (the library as well) using :import com.jcraft.jsch.*;
/// then in our functiontry {JSch ssh = new JSch();
Session session = ssh.getSession("username", "myip90000.ordomain.com", 22);
// Remember that this is just for testing and we need a quick access, you can add an identity and known_hosts file to prevent// Man In the Middle attacksjava.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setPassword("Passw0rd");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftp = (ChannelSftp) channel;
// use the get method , if you are using android remember to remove "file://" and use only the relative path
sftp.rm("/var/www/remote/myfile.txt");
Boolean success = true;
if(success){// The file has been DELETED succesfully} channel.disconnect();
session.disconnect();
} catch (JSchException e) {System.out.println(e.getMessage().toString());
e.printStackTrace();
} catch (SftpException e) {System.out.println(e.getMessage().toString());
e.printStackTrace();
}
此函数将使用rm方法为你解决问题。你只需要具有远程文件的路径。
请记住, 作为示例, 这不包括任何安全性。如果服务器使用已知主机文件, 则需要添加已知主机文件;如果服务器使用私钥进行身份验证, 则需要添加标识。
此代码可在使用Java和JSCH库的任何平台(Android, 桌面等)上运行。
推荐阅读
- 如何在Java中多次执行Cordova回调(Android)
- 如何从Java中的JSON对象获取浮点值
- 如何从Java运行系统应用程序(可执行文件)
- 如何解决Android Studio错误(无法解决符号”RandomAccessFile”)
- 如何使用Java检索Android设备上的可用RAM
- 如何在Java中打印三角形矩形图案(从左到右和从右到左)
- 如何在Java中轻松使用JSON
- Java技术指南「并发原理专题」AQS的技术体系之CLHMCS锁的原理及实现
- Java技术探索「开发实战专题」Lombok插件开发实践必知必会操作!