package com.cpic.lifeplan.common.util;
import java.util.Properties;
import org.apache.log4j.Logger;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
/**
* 处理sftp工具类
* @author 严程
*/
public class SftpUtil {
protected Logger log = Logger.getLogger(SftpUtil.class);
private Session session = null;
private ChannelSftp sftp = null;
/**
* 打开sftp并连接
* @return
* @throws JSchException
* @throws Exception
*/
public ChannelSftp getSftp(){
try {
String username = ConfigUtil.getConfigValue(ConfigUtil.USERNAME);
String host = ConfigUtil.getConfigValue(ConfigUtil.HOST);
int port = Integer.parseInt(ConfigUtil.getConfigValue(ConfigUtil.PORT));
String password = ConfigUtil.getConfigValue(ConfigUtil.PASSWORD);
JSch jsch = new JSch();
session = jsch.getSession(username, host, port);
session.setPassword(password);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
session.setConfig(sshConfig);
session.connect();
sftp = (ChannelSftp)session.openChannel("sftp");
sftp.connect();
} catch (JSchException e) {
if (sftp != null) {
sftp.disconnect();
sftp = null;
}
if (session != null) {
session.disconnect();
session = null;
}
log.error("系统异常sftp连接失败!",e);
}
return sftp;
}
/**
* 关闭连接;
*/
public void close() {
if (sftp != null) {
sftp.disconnect();
sftp = null;
}
if (session != null) {
session.disconnect();
session = null;
}
}
}
分享到:
相关推荐
JAVA SFTP文件上传、下载及批量下载实例 在本篇文章中,我们将详细介绍JAVA SFTP文件上传、下载及批量下载的实例,包括相关的概念、API介绍、代码实现等方面的内容。 首先,我们需要了解什么是SFTP?SFTP(Secure ...
Java FTP连接池是一种用于管理FTP(文件传输协议)连接的资源池,它的主要目标是提高应用程序的性能和效率。在传统的FTP操作中,每次需要连接到FTP服务器时都会创建一个新的连接,这会消耗大量时间和系统资源。而...
2. **配置SFTP连接** 创建JSch实例,并设置必要的连接参数,如主机名、端口、用户名和密码。 ```java JSch jsch = new JSch(); Session session = jsch.getSession("username", "hostname", 22); session.set...
在这里提到的`putty-64bit-0.70-installer.msi`是64位版本的PuTTY安装程序,虽然PuTTY本身不是Java SFTP上传的直接依赖,但它通常用于测试SSH连接,生成密钥对(公钥和私钥),以及调试连接问题。PuTTY生成的密钥...
SFTP连接配置 在使用JSch进行SFTP操作前,需要配置连接参数,包括主机名、端口号、用户名和密码。以下是一个简单的示例: ```java Properties config = new Properties(); config.put("StrictHostKeyChecking", ...
JSch是一个纯Java实现的SSH2库,允许开发人员连接到支持SFTP的服务器,进行文件的上传、下载以及执行其他相关操作。本文将详细介绍如何使用JSch进行SFTP操作,并提供一个简单的`SftpUtil`工具类示例。 首先,我们...
在Java编程中,实现Secure File Transfer Protocol (SFTP) 功能是常见的需求,尤其是在处理远程文件操作时。本文将详细讲解如何使用开源库JSch来实现在Java中进行SFTP的上传、下载以及删除文件的方法。 JSch是一个...
总结来说,Java SFTP上传和下载涉及到的主要知识点包括JSch库的使用、SSH连接的建立、SFTP通道的开启和关闭,以及文件的上传和下载操作。通过提供的JAR文件和源码,开发者可以快速集成并实现自己的SFTP功能,确保...
首先,为了在Java中使用SFTP,我们需要一个支持SFTP的库,例如JSch(Java Secure Channel)。JSch是一个开源的Java库,提供了SSH2协议的实现,包括SFTP服务。在描述中提到的“jar包”可能就是JSch的库文件。要使用...
1. **准备下载**:下载文件的步骤与上传类似,先建立SFTP连接并打开通道。 2. **获取远程文件**:使用`get()`方法从服务器下载文件: ```java File localDestination = new File("/path/to/local/destination"); ...
首先,我们需要一个Java库来处理SFTP连接。常用的是JSch(Java Secure Channel),这是一个开源的SSH2库,支持SFTP。要使用JSch,你需要将其添加到你的项目依赖中。如果你使用Maven,可以在pom.xml文件中添加如下...
本文将详细探讨如何使用Java实现SFTP的文件上传和下载功能,以及如何利用jcraft库来完成这一任务。 首先,jcraft是一个日本开发者团队创建的开源项目,提供了Java实现的SSH2库,其中包括对SFTP的支持。在本示例中,...
4. 在Java中,通过JSch库连接到SFTP服务器时,需要先建立一个JSch对象,然后创建一个Session(会话),并设置Session的配置属性。 5. 接着通过Session对象获取一个Channel(通道),并打开SFTP通道。此时可以利用...
接下来,我们来看如何创建一个SFTP连接。首先,实例化JSch对象,然后使用`Session.connect()`方法建立SSH连接。这通常需要提供主机名、端口号、用户名和密码: ```java import com.jcraft.jsch.*; JSch jsch = new...
以上就是使用Java Swing实现SFTP文件夹上传的基本步骤,包括建立SSH连接、使用SFTP通道、上传文件和递归上传文件夹。对于生产环境,建议添加异常处理和错误提示,以及更安全的策略,如使用密钥对而非密码进行身份...
`Ftp.java`可能是一个封装了SFTP操作的类,`properties.properties`是配置文件,包含SFTP连接的相关参数。`打包运行jar文件.txt`可能是关于如何构建和运行项目成可执行JAR的说明。 实现上述功能时,还需要注意异常...
Java中的FTP(File Transfer Protocol)和SFTP(Secure File Transfer Protocol)是两种用于在客户端和服务器之间传输文件的协议。FTP是一种基于TCP的协议,它允许用户上传、下载和管理远程服务器上的文件。然而,...
Java SFTP文件上传是通过Java编程语言实现与Secure File Transfer Protocol (SFTP)服务器进行交互,将本地文件安全地传输到远程服务器的过程。SFTP是一种安全的网络协议,用于在客户端和服务器之间交换文件,它基于...
总的来说,JSch库为Java开发者提供了一种强大且灵活的方式来实现SFTP连接和文件操作。无论是进行简单的文件传输还是构建复杂的文件管理系统,JSch都能满足需求。通过熟悉其API和最佳实践,开发者可以有效地集成SFTP...