我正在尝试使用Java使用SFTP(而不是FTPS)从服务器检索文件.我怎样才能做到这一点?
是否有可用于实现SFTP服务器的Java库?
我试图通过SFTP接收文件,但我似乎无法找到任何SFTP服务器的实现.我找到了FTP/SFTP/FTPS 客户端库和FTP/FTPS服务器库,但没有找到SFTP的服务器.
为了澄清,我正在尝试通过SFTP 接收文件.不是从我的应用程序"获取"或"放置"文件到另一个现有服务器.
现在我的应用程序允许用户连接到本地linux SFTP服务器,删除文件,然后我的应用程序轮询目录,但我觉得这是一个糟糕的实现; 我讨厌"轮询"目录的想法,但不幸的是他们必须使用SFTP.有什么建议?
我想通过 SFTP 传输文件。我发现了一个类似的问题,该问题来自如何在 java 中通过 SFTP 传输文件?. 我从本地主机上的帖子中尝试了建议的解决方案。但我在输出下显示以下错误。
输出
preparing the host information for sftp.
Host connected.
sftp channel opened and connected.
2: No such file
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846)
at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:2340)
at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:342)
at ScpTo.main(ScpTo.java:69)
File transfered successfully to host.
sftp Channel exited.
Channel disconnected.
Host Session disconnected.
Run Code Online (Sandbox Code Playgroud)
代码
import java.io.File;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
public class ScpTo {
/**
*
*/
public ScpTo() { …Run Code Online (Sandbox Code Playgroud)