求救,jsch执行linux命令

jsch执行linux命令的时候,表示一直是在根目录下,cd命令执行不了, 这是我的代码,求大神看看是哪里出了错

public class ShellExecuter {

private static final int BLOCK_SIZE = 1024;
private static Session session;

public ShellExecuter(Session session){
    this.session=session;
}

private static ChannelExec openChannelExec(Session session){
    ChannelExec exec = null;
    try {
        Channel channel = session.openChannel("exec");
        exec = (ChannelExec)channel;
    } catch (JSchException e) {
        e.printStackTrace();
    }
    return exec;
}

public static String execute(String command, Session session) throws Exception{
    ChannelExec exec = openChannelExec(session);
    StringBuffer buffer = executeCommand(command, exec);
    closeChannelExec(exec);
    return buffer.toString();
}

private static StringBuffer executeCommand(String command, ChannelExec exec) throws Exception{
    InputStream inputStream = exec.getInputStream();
    exec.setCommand(command);
    exec.connect();
    StringBuffer buffer = generateResult(inputStream);
    return buffer;
}

private static StringBuffer generateResult(InputStream inputStream) throws IOException{
    StringBuffer buffer = new StringBuffer();
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream),524288000);
    String line = "";
    while((line=reader.readLine())!=null){
        buffer.append(line).append("<br/>");
      }
    reader.close();
    inputStream.close();
    return buffer;
}

private static void closeChannelExec(ChannelExec channelExec) {
    channelExec.disconnect();
 }

}

您好,我也有同样的问题,cd命令没有执行,请问下您现在解决了吗?