首页 > 解决方案 > 路由器上的 Java 到 SSH 命令

问题描述

我正在尝试通过 SSH 和 Java 在我的路由器上执行此命令,但出现此错误。是什么导致了这个错误?如果我直接登录到我的路由器,该命令就没有问题!

这是我得到的错误:

MacBook-Pro:Test_SSH owner$ java -cp .:/Users/owner/Downloads/jsch-0.1.55.jar com.company.Main 用户名密码 192.168.5.1 vbash: configure: command not found exit-status: 127

这是我的代码:

package ssh;
import com.jcraft.jsch.*;
import java.io.InputStream;

public class Shell{
public static void main(String[] arg){

try{
    JSch jsch = new JSch();

      Session session = jsch.getSession(arg[0],arg[2] , 22);
      java.util.Properties config = new java.util.Properties();
      config.put("StrictHostKeyChecking", "no");
      session.setPassword(arg[1]);
    session.setConfig(config);
    session.connect();

      String command = "configure";
      Channel channel = session.openChannel("exec");
      ((ChannelExec) channel).setCommand(command);
      channel.setInputStream(null);
      ((ChannelExec) channel).setErrStream(System.err);
      InputStream in = channel.getInputStream();

      channel.connect();

      byte[] tmp = new byte[1024];
      while (true)
      {
        while (in.available() > 0)
        {
          int i = in.read(tmp, 0, 1024);
          if (i < 0)
            break;
          System.out.print(new String(tmp, 0, i));
        }
        if (channel.isClosed())
        {
          System.out.println("exit-status: " + channel.getExitStatus());
          break;
        }
        try
        {
          Thread.sleep(1000);
        }
        catch (Exception ee)
        {
        }
      }

      channel.disconnect();
      session.disconnect();
    }
    catch (Exception e)
    {
        System.out.println("sdfdfdf");
      System.out.println(e.getMessage());
    }
 }


}

标签: javajsch

解决方案


推荐阅读