以下是我的程序......但是在session.connect()
之后这不起作用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);
}
,输出
Creating session.
Session created.
Session connected before.
INFO: Connecting to ftp.olstr.com port 21
INFO: Connection established
我的代码控制在session.connect()行之后没有移动。
答案 0 :(得分:5)
FTP,FTPS,SFTP,FTP等不同连接有不同的端口。使用适当的端口。这些是端口。 20 FTP数据(文件传输协议),21 FTP(文件传输协议),22 SSH(安全Shell)。 Use session.connect(timeout)
。评论您的堆栈跟踪,以便我知道确切的错误是什么。尝试使用22并查看错误是否仍然存在。