title: Executing Shell Scripts from Java Program by ssh to remote server
body: <p>Below is the program that I am using to ssh to one of the remote servers and its working fine. </p>
  
  <p><strong>My question is</strong>- Is there any way I can execute the <code>shell scripts that I have on my windows machine</code> on the remote server? </p>
  
  <p>If Yes? then how I can modify my below code to execute the shell scripts on the remote server that I am trying to connect. </p>
  
  <pre><code>public class SampleTest{
    public static void main(String[] arg){
  
      try{
        JSch jsch=new JSch();
  
        String host=null;
        if(arg.length&gt;0){
          host=arg[0];
        }
        else{
          host=JOptionPane.showInputDialog("Enter username@hostname",
                                           System.getProperty("user.name")+
                                           "@lvsaishdc3in0001.lvs.host.com"); 
        }
        String user=host.substring(0, host.indexOf('@'));
        host=host.substring(host.indexOf('@')+1);
  
        Session session=jsch.getSession(user, host, 22);
  
        String passwd = JOptionPane.showInputDialog("Enter password");
        session.setPassword(passwd);
  
        UserInfo ui = new MyUserInfo(){
          public void showMessage(String message){
            JOptionPane.showMessageDialog(null, message);
          }
          public boolean promptYesNo(String message){
            Object[] options={ "yes", "no" };
            int foo=JOptionPane.showOptionDialog(null, 
                                                 message,
                                                 "Warning", 
                                                 JOptionPane.DEFAULT_OPTION, 
                                                 JOptionPane.WARNING_MESSAGE,
                                                 null, options, options[0]);
            return foo==0;
          }
  
        };
  
        session.setUserInfo(ui);
  
        //session.connect();
        session.connect(30000);   // making a connection with timeout.
  
        Channel channel=session.openChannel("shell");
  
        // Enable agent-forwarding.
        //((ChannelShell)channel).setAgentForwarding(true);
  
        channel.setInputStream(System.in);
        /*
        // a hack for MS-DOS prompt on Windows.
        channel.setInputStream(new FilterInputStream(System.in){
            public int read(byte[] b, int off, int len)throws IOException{
              return in.read(b, off, (len&gt;1024?1024:len));
            }
          });
         */
  
        channel.setOutputStream(System.out);
  
        /*
        // Choose the pty-type "vt102".
        ((ChannelShell)channel).setPtyType("vt102");
        */
  
        /*
        // Set environment variable "LANG" as "ja_JP.eucJP".
        ((ChannelShell)channel).setEnv("LANG", "ja_JP.eucJP");
        */
  
        //channel.connect();
        channel.connect(3*1000);
      }
      catch(Exception e){
        System.out.println(e);
      }
    }
  
    public static abstract class MyUserInfo
                            implements UserInfo, UIKeyboardInteractive{
      public String getPassword(){ return null; }
      public boolean promptYesNo(String str){ return false; }
      public String getPassphrase(){ return null; }
      public boolean promptPassphrase(String message){ return false; }
      public boolean promptPassword(String message){ return false; }
      public void showMessage(String message){ }
      public String[] promptKeyboardInteractive(String destination,
                                                String name,
                                                String instruction,
                                                String[] prompt,
                                                boolean[] echo){
        return null;
      }
    }
  }
  </code></pre>