You print only the stdout or stderr, depending on the exit code Try printing both.
On May 4, 2010 6:27 AM, "Haidong Zhu" <[email protected]> wrote: Below is my code,if i set the command as "ls ~/" I can get the output of command ls by reading the input stream from channel. if i set the command as "java -version", i can not get any output and the exitcode is 0. command = "ls ~/"; //command = "java -version"; InputStream in = null; InputStream err = null; BufferedReader inReader = null; BufferedReader errReader = null; try { JSch jsch = new JSch(); Session session = jsch.getSession(user, host, port); session.setUserInfo(userInfo); session.setTimeout(timeout); session.connect(); Channel channel = session.openChannel("exec"); ((ChannelExec)channel).setCommand(command); channel.setInputStream(null); ((ChannelExec)channel).setErrStream(null); in = channel.getInputStream(); err = ((ChannelExec)channel).getErrStream(); channel.connect(); int exitCode = 0; while(true) { if(channel.isClosed()){ exitCode = channel.getExitStatus(); break; } try { Thread.sleep(1000); } catch (InterruptedException ie) { } } inReader = new BufferedReader(new InputStreamReader(in)); errReader = new BufferedReader(new InputStreamReader(err)); if (exitCode != 0) { while ((s = errReader.readLine()) != null) { sb.append(s).append("\n"); } status.setData(sb.toString()); } else { while ((s = inReader.readLine()) != null) { sb.append(s).append("\n"); } System.out.println(sb.toString()); } ------------------------------------------------------------------------------ _______________________________________________ JSch-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jsch-users
------------------------------------------------------------------------------
_______________________________________________ JSch-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jsch-users
