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命令没有执行,请问下您现在解决了吗?