Java SFTP Connection Files Transfer
Table of Contents
In this article, I am going to show SFTP connection with java, transfer files from the local system to the remote system. Here we are going to using the JSch library to connect SFTP/STP server.
Pre-Requisites
- Java 1.8
- JSch.jar
- Eclipse IDE
- Maven
SftpChannel.java
We need to get SFTP server details as follows
- SFTP Host/IP
- SFTP Port
- SFTP Username
- SFTP Password
jsch = new JSch();
session = jsch.getSession(USER, HOST, Integer.parseInt(PORT));
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(PASSWORD);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
sftpchannel = (ChannelSftp) channel;
Complete Code
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.narayanatutorial.sftp;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
/**
*
* @author narayanatutorial
*/
public class SftpChannel {
public static void main(String args[]) {
Session session = null;
ChannelSftp sftpchannel = null;
Channel channel = null;
JSch jsch = null;
String USER="TESTUSER";
String HOST="127.0.0.1";
String PORT="1253";
String PASSWORD="TESTPASSWORD";
String SourceFile="D:/sample.txt";
String DestinationFile="/home/user/sample.txt";
String DestinationPath="/home/user/sampledirectory/";
try {
jsch = new JSch();
session = jsch.getSession(USER, HOST, Integer.parseInt(PORT));
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(PASSWORD);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
sftpchannel = (ChannelSftp) channel;
if (sftpchannel.isConnected()) {
System.out.println("SFTP Connected");
} else {
System.out.println("SFTP Not Connected");
}
//transfer file from local to remote
sftpchannel.put(SourceFile, DestinationFile);
//create folder in the remote location
sftpchannel.mkdir(DestinationPath);
} catch (Exception e) {
e.printStackTrace();
}finally{
if (session.isConnected()) {
session.disconnect();
}
if (channel.isConnected()) {
channel.disconnect();
}
if (!sftpchannel.isConnected()) {
sftpchannel.disconnect();
}
}
}
}
pom.xml
<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55</version> </dependency>
Complete pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.narayanatutorial.sftp</groupId>
<artifactId>Java_SFTP</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Java_SFTP</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.jcraft/jsch -->
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Get complete source code from Github

Hello! I am Narayanaswamy founder and admin of narayanatutorial.com. I have been working in the IT industry for more than 12 years. NarayanaTutorial is my web technologies blog. My specialties are Java / J2EE, Spring, Hibernate, Struts, Webservices, PHP, Oracle, MySQL, SQLServer, Web Hosting, Website Development, and IAM(ForgeRock) Specialist
I am a self-learner and passionate about training and writing. I am always trying my best to share my knowledge through my blog.




