SSH上的Java文件命令

SSH上的Java文件命令,java,ssh,jsch,apache-commons-io,Java,Ssh,Jsch,Apache Commons Io,我正在创建一个java程序,它通过ssh做了很多工作 在我的程序中,我需要能够在远程主机上运行“listFiles()”之类的方法。我还需要能够从ApacheCommonsIO运行几个命令(我使用的是“FileUtils”类)。我见过像JSch这样的程序,但在文件操作和传输方面,它们都没有足够的灵活性 有人能为我的问题提出一个替代方案或方法吗?相反,JSch支持文件传输: 至于列出远程主机上的文件,您不能在那里使用ApacheCommonsFileUtils运行java命令。您需要做的是在远程操

我正在创建一个java程序,它通过ssh做了很多工作

在我的程序中,我需要能够在远程主机上运行“listFiles()”之类的方法。我还需要能够从ApacheCommonsIO运行几个命令(我使用的是“FileUtils”类)。我见过像JSch这样的程序,但在文件操作和传输方面,它们都没有足够的灵活性


有人能为我的问题提出一个替代方案或方法吗?

相反,JSch支持文件传输:

至于列出远程主机上的文件,您不能在那里使用ApacheCommonsFileUtils运行java命令。您需要做的是在远程操作系统上远程执行命令—相当于通过命令行ssh执行此操作:

ssh remotehost ls /path/to/remote/dir
对于您选择的任何ssh库,而不仅仅是JSch,这几乎都是正确的

因此,就JSch而言,这将是(假设您已经设置并连接了JSch ssh会话):


谢谢我不敢相信我没有想到使用ls facepalm。
ChannelExec channel= (ChannelExec) session.openChannel("exec");
channel.setCommand("ls /path/to/remote/dir");
InputStream in=channel.getInputStream();
channel.connect()
// read your ls-output from the input stream here
channel.disconnect()