The following piece of code is based on Shell and Exec. I am executing multiple
commands. But If i do not use out.flush(), in.available() gives zero data.
what 's the wrong ?
/* -*-mode:java; c-basic-offset:2; indent-tabs-mode:nil -*- */
import com.jcraft.jsch.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;
public class Exec{
public static void main(String[] arg){
try{
JSch jsch=new JSch();
jsch.setKnownHosts("/home/foo/.ssh/known_hosts");
String host=null;
if(arg.length>0){
host=arg[0];
}
else{
host=JOptionPane.showInputDialog("Enter [EMAIL PROTECTED]",
System.getProperty("user.name")+
"@localhost");
}
String user=host.substring(0, host.indexOf('@'));
host=host.substring(host.indexOf('@')+1);
Session session=jsch.getSession(user, host, 22);
// username and password will be given via UserInfo interface.
UserInfo ui=new MyUserInfo();
session.setUserInfo(ui);
session.connect();
// String command=JOptionPane.showInputDialog("Enter command",
"set|grep SSH");
Channel channel=session.openChannel("shell");
channel.setInputStream(null);
channel.setOutputStream(null);
InputStream in=channel.getInputStream();
OutputStream out =channel.getOutputStream();
channel.connect();
byte[] tmp=new byte[1024];
while(in.available()>0){
int i=in.read(tmp, 0, 1024);
if(i<0)break;
System.out.print("INPUT 11: " + new String(tmp, 0, i));
}
out.write(("ls -lrt").getBytes());
out.write(("\n").getBytes());
out.flush();
out.write(("pwd").getBytes());
out.write(("\n").getBytes());
out.flush();
while(true){
while(in.available()>0){
int i=in.read(tmp, 0, 1024);
if(i<0)break;
System.out.print("INPUT : " + new String(tmp, 0, i));
}
if(channel.isClosed()){
System.out.println("exit-status: "+channel.getExitStatus());
break;
}
try{Thread.sleep(1000);}catch(Exception ee){}
}
// channel.disconnect();
// session.disconnect();
}
catch(Exception e){
System.out.println(e);
}
}
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com -------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
JSch-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jsch-users