transfert de fichiers via SFTP

Je veux transférer un fichier via SFTP. J'ai trouvé une semblable question qui vous est posée de comment faire pour transférer des fichiers via SFTP en java?. J'ai essayé la solution proposée par la poste sur localhost. mais j'obtiens l'erreur suivante s'affiche sous la sortie.

sortie

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

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.");
}
}
  • Commencez avec pas attraper toutes les exceptions à la fois. Savoir ce que vous êtes en train de faire, de limiter le problème vous-même avant de demander de l'aide.
  • post mis à jour. Il semblerait que c'est le problème avec la session.connect();
  • Avez-vous commencé le serveur? Essayez d'exécuter netstat -ano et vérifier si il y a un processus d'écoute sur le port 22.
  • Je vais l'essayer. merci pour les conseils
  • Essayez d'atteindre localhost:22 abord avec tout autre client, comme FireFox + FireFTP.
  • avez-vous sftp en cours d'exécution sur un pc?
  • Vous avez complètement changé votre question. Vous ne pouvez pas le faire sur ce site. Vous devriez demander à nouveau la question à la place. Personne ne remarquera votre nouvelle question autrement. Et c'est mauvais pour le site.
  • désolé, je ne savais pas à ce sujet et n'y reviendra pas

InformationsquelleAutor user2211678 | 2015-05-22