title: Jsch example to copy file to SFTP Server
body: <p>Following is my program...but this is not working after session.connect()</p>
  
  <pre><code>public static void main(String args[])
          {
          try {
              String ftpHost = "XXXXXXXX";
              int ftpPort = 21;     
              String ftpUserName = "XXXX";
              String ftpPassword = "XXXXX";
              String ftpRemoteDirectory = "/";
              String fileToTransmit = "C://XXXXX//Desktop//RG//10171699_821972117859158_5724612734096298046_n.jpg";          
              JSch.setLogger(new MyLogger());
              System.out.println("Creating session.");
              JSch jsch = new JSch();
  
              Session session = null;
              Channel channel = null;
              ChannelSftp c = null;
  
              //
              // Now connect and SFTP to the SFTP Server
              //
              try {
                  // Create a session sending through our username and password
                  session = jsch.getSession(ftpUserName, ftpHost, ftpPort);
                  System.out.println("Session created.");
                  session.setPassword(ftpPassword);
  
                  java.util.Properties config = new java.util.Properties();
                  config.put("StrictHostKeyChecking", "no");
                  session.setConfig(config);
                  System.out.println("Session connected before.");
                  session.connect();
                  System.out.println("Session connected.");
  
                  System.out.println("OPEN SFTP CHANNEL");
                  //
                  // Open the SFTP channel
                  //
                  System.out.println("Opening Channel.");
                  channel = session.openChannel("sftp");
                  channel.connect();
                  c = (ChannelSftp) channel;
                  System.out.println("Now checing status");
              } catch (Exception e) {
                  System.err.println("Unable to connect to FTP server."
                          + e.toString());
                  throw e;
              }
  
              //
              // Change to the remote directory
              //
              System.out.println("Now performing operations");
              ftpRemoteDirectory="/home/pooja111/";
              System.out.println("Changing to FTP remote dir: "
                      + ftpRemoteDirectory);
              c.cd(ftpRemoteDirectory);
  
              //
              // Send the file we generated
              //
              try {
                  File f = new File(fileToTransmit);
                  System.out.println("Storing file as remote filename: "
                          + f.getName());
                  c.put(new FileInputStream(f), f.getName());
              } catch (Exception e) {
                  System.err
                          .println("Storing remote file failed." + e.toString());
                  throw e;
              }   
  
              //
              // Disconnect from the FTP server
              //
              try {
                  c.quit();
              } catch (Exception exc) {
                  System.err.println("Unable to disconnect from FTPserver. "
                          + exc.toString());
              }
  
          } catch (Exception e) {
              System.err.println("Error: " + e.toString());
          }
  
          System.out.println("Process Complete.");
          System.exit(0);
      }
  </code></pre>
  
  <p>and the output is</p>
  
  <pre><code>Creating session.
  Session created.
  Session connected before.
  INFO: Connecting to ftp.olstr.com port 21
  INFO: Connection established
  </code></pre>
  
  <p>My code control is not moving after session.connect() line.</p>