在 JSch 中使用 sftp 发出任何命令

Issue any command using sftp in JSch

您好,我目前正在使用以下代码行向远程服务器发出命令

ChannelSftp sftp = (ChannelSftp)session.openChannel("sftp");

sftp.connect();

System.out.println("Current Directory: " + sftp.pwd()); <= 这行

但是 pwd 已经被定义为 Class ChannelSftp 中的方法,我的问题是如果我想发出一些命令或 运行 任何不是 JSch 中的方法的 .sh 文件怎么办?

假设我想 运行 : sudo /opt/bin/run.sh file.

或者有什么方法可以用来完成这项工作

(请注意,我在本地主机和网络服务器之间有一个跳转服务器。网络服务器只能通过跳转 server.So 访问,这就是我不使用 exec 或 shell 的原因).

ChannelSftp class 正在执行 SFTP 协议,它能够执行 FTP 操作。 显然不允许通过 SFTP. 执行随机命令在这种情况下你需要的是使用不同的 class jsch 库:ChannelExec.

例如 here.