これは、リモートサーバー上にあるファイルのコンテンツを取得し、出力として表示するコードです。
package sshexample;
import com.jcraft.jsch.*;
import Java.io.*;
public class SSHexample
{
public static void main(String[] args)
{
String user = "user";
String password = "password";
String Host = "192.168.100.103";
int port=22;
String remoteFile="sample.txt";
try
{
JSch jsch = new JSch();
Session session = jsch.getSession(user, Host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
System.out.println("Connection established.");
System.out.println("Creating SFTP Channel.");
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
System.out.println("SFTP Channel created.");
InputStream out= null;
out= sftpChannel.get(remoteFile);
BufferedReader br = new BufferedReader(new InputStreamReader(out));
String line;
while ((line = br.readLine()) != null)
{
System.out.println(line);
}
br.close();
sftpChannel.disconnect();
session.disconnect();
}
catch(JSchException | SftpException | IOException e)
{
System.out.println(e);
}
}
}
次に、ファイルがローカルホストにコピーされるこのプログラムを実装する方法と、ローカルホストからサーバーにファイルをコピーする方法。
ここでは、あらゆる形式のファイルのファイル転送を機能させる方法を説明します。
JSchを使用してSFTP経由でファイルをアップロードする最も簡単な方法は次のとおりです。
JSch jsch = new JSch();
Session session = jsch.getSession(user, Host);
session.setPassword(password);
session.connect();
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
sftpChannel.put("C:/source/local/path/file.Zip", "/target/remote/path/file.Zip");
同様にダウンロードの場合:
sftpChannel.get("/source/remote/path/file.Zip", "C:/target/local/path/file.Zip");
使用法:
sftp("file:/C:/home/file.txt", "ssh://user:pass@Host/home");
sftp("ssh://user:pass@Host/home/file.txt", "file:/C:/home");
以下のコードは私のために働く
public static void sftpsript(String filepath) {
try {
String user ="demouser"; // username for remote Host
String password ="demo123"; // password of the remote Host
String Host = "demo.net"; // remote Host address
JSch jsch = new JSch();
Session session = jsch.getSession(user, Host);
session.setPassword(password);
session.connect();
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
sftpChannel.put("I:/demo/myOutFile.txt", "/tmp/QA_Auto/myOutFile.Zip");
sftpChannel.disconnect();
session.disconnect();
}catch(Exception ex){
ex.printStackTrace();
}
}