title: transfer file through SFTP
body: <p>I want to transfer a file through SFTP. I found a similar question that is asked from <a href="https://stackoverflow.com/questions/14830146/how-to-transfer-a-file-through-sftp-in-java">how to transfer a file through SFTP in java?</a>. I tried out the suggested solution from the post on localhost. but I get the following error shown under output.</p>
  
  <p>output </p>
  
  <pre><code>preparing the host information for sftp.
  Host connected.
  sftp channel opened and connected.
  2: No such file
  at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846)
  at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:2340)
  at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:342)
  at ScpTo.main(ScpTo.java:69)
  File transfered successfully to host.
  sftp Channel exited.
  Channel disconnected.
  Host Session disconnected.
  </code></pre>
  
  <p>Code </p>
  
  <pre><code>import java.io.File;
  import java.io.File;
  import java.io.FileInputStream;
  import java.io.FileNotFoundException;
  
  import com.jcraft.jsch.Channel;
  import com.jcraft.jsch.ChannelSftp;
  import com.jcraft.jsch.JSch;
  import com.jcraft.jsch.JSchException;
  import com.jcraft.jsch.Session;
  import com.jcraft.jsch.SftpException;
  
  public class ScpTo {
  
      /**
       *
       */
      public ScpTo() {
          // TODO Auto-generated constructor stub
      }
  
      /**
       * @param args
       */
      public static void main(String[] args) {
           String SFTPHOST = "192.168.1.3";
              int SFTPPORT = 22;
              String SFTPUSER = "sam-PC";
              String SFTPPASS = "";
              String SFTPWORKINGDIR = "C:/Users/sam/Desktop/hi.txt";
  
              Session session = null;
              Channel channel = null;
              ChannelSftp channelSftp = null;
              System.out.println("preparing the host information for sftp.");
  
                  JSch jsch = new JSch();
                  try {
                      session = jsch.getSession(SFTPUSER, SFTPHOST, SFTPPORT);
                  } catch (JSchException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
                  session.setPassword(SFTPPASS);
                  java.util.Properties config = new java.util.Properties();
                  config.put("StrictHostKeyChecking", "no");
                  session.setConfig(config);
                  try {
                      session.connect();
                  } catch (JSchException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
                  System.out.println("Host connected.");
                  try {
                      channel = session.openChannel("sftp");
                  } catch (JSchException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
                  try {
                      channel.connect();
                  } catch (JSchException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
                  System.out.println("sftp channel opened and connected.");
                  channelSftp = (ChannelSftp) channel;
                  try {
                      channelSftp.cd(SFTPWORKINGDIR);
                  } catch (SftpException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
                  File f = new File(SFTPWORKINGDIR);
                  try {
                      channelSftp.put(new FileInputStream(f), f.getName());
                  } catch (FileNotFoundException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  } catch (SftpException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
                  System.out.println("File transfered successfully to host.");
  
  
                  channelSftp.exit();
                  System.out.println("sftp Channel exited.");
                  channel.disconnect();
                  System.out.println("Channel disconnected.");
                  session.disconnect();
                  System.out.println("Host Session disconnected.");
  
      }
  }
  </code></pre>