JSch通过SSH运行多个命令时出现问题

时间:2019-02-27 09:03:43

标签: java ssh jsch

我正在尝试使用JSch通过SSH运行多个命令。不同的命令可以正常工作,但是我有一个问题:如果我尝试读取另一个文件夹,则似乎系统会在执行任何cmd之后从根文件夹重新启动,只是我做不到,因为我会再次读取根文件夹。考虑我在这方面已经足够新了。

这是我管理命令的方法(它由stackOverflow上位于此处的部分组成):

public String ask (String command) throws SftpException, IOException, JSchException {
        StringBuilder outputBuffer = new StringBuilder();
         try
         {

        Channel  channel = session.openChannel("exec");
        ((ChannelExec)channel).setCommand(command);
        InputStream commandOutput = channel.getInputStream();
        channel.connect();
        int readByte = commandOutput.read();

        while(readByte != 0xffffffff)
        {
           outputBuffer.append((char)readByte);
           readByte = commandOutput.read();
        }

        channel.disconnect();
     }
     catch(IOException ioX)
     {
        System.out.println("PROBLEMI NEL CHANNEL DI SESSIONE");
        return null;
     }
     catch(JSchException jschX)
     {
        System.out.println("ALTRI PROBLEMI");
        return null;
     }
     System.out.println(outputBuffer.toString());
     return outputBuffer.toString();
}

无错误/异常。 我正在尝试执行2个简单的连续cmd,例如:“ cd”和“ dir”。

因此,正如Martin Prikryl所建议的那样,将cmd“连接”为“ cd nameFolder && ls”。对于我的测试题库,如果其他人有更多想法,就足够了……

0 个答案:

没有答案