我正在尝试使用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”。对于我的测试题库,如果其他人有更多想法,就足够了……