写一个java中如何用JSch来连接sftp的类并做测试?(亲测)

当使用JSch连接SFTP服务器的类,并进行测试时,可以按照以下步骤操作:

  1. 添加JSch库的依赖项。在你的项目中添加JSch库的Maven依赖项(如前面所述)或下载JAR文件并将其包含在项目中。

  2. <dependency>

    <groupId>com.jcraft</groupId>

    <artifactId>jsch</artifactId>

    <version>0.1.55</version>

    </dependency>

  3. 创建一个名为SftpConnector的Java类,并在其中编写连接SFTP服务器的逻辑以及一些简单的测试方法。

import com.jcraft.jsch.*;

public class SftpConnector {

private String host;

private int port;

private String username;

private String password;

public SftpConnector(String host, int port, String username, String password) {

this.host = host;

this.port = port;

this.username = username;

this.password = password;

}

public void connectAndUploadFile(String localFilePath, String remoteFilePath) {

try {

JSch jsch = new JSch();

// 建立SFTP会话

Session session = jsch.getSession(username, host, port);

session.setPassword(password);

session.setConfig("StrictHostKeyChecking", "no");

session.connect();

// 打开SFTP通道

ChannelSftp channel = (ChannelSftp) session.openChannel("sftp");

channel.connect();

// 上传文件

channel.put(localFilePath, remoteFilePath);

System.out.println("File uploaded successfully.");

// 关闭SFTP通道和会话

channel.disconnect();

session.disconnect();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String\[\] args) {

String host = "hostname"; // SFTP服务器主机名或IP地址

int port = 22; // SFTP服务器端口号,默认为22

String username = "username"; // SFTP服务器登录用户名

String password = "password"; // SFTP服务器登录密码

String localFilePath = "/path/to/local/file.txt"; // 本地文件路径

String remoteFilePath = "/path/to/remote/file.txt"; // 远程文件路径

SftpConnector connector = new SftpConnector(host, port, username, password);

connector.connectAndUploadFile(localFilePath, remoteFilePath);

}

}

在上述示例中,SftpConnector类包含了一个构造函数,用于接收SFTP服务器的连接参数(主机、端口、用户名和密码)。connectAndUploadFile方法用于建立SFTP连接、上传文件到远程服务器,并进行简单的测试输出。请将localFilePath和remoteFilePath更改为实际的本地和远程文件路径。

  1. 在main方法中,创建一个SftpConnector对象并调用connectAndUploadFile方法,以测试连接和文件上传功能。

确保将host、port、username和password替换为实际的连接信息,并提供有效的本地文件路径和远程文件路径。

运行这个类,它将连接到指定的SFTP服务器,并尝试上传本地文件到远程服务器。你可以根据需要扩展SftpConnector类,添加其他功能来满足你的需求,如下载文件、列出目录内容等。

相关推荐
文丑颜不良啊7 分钟前
LeetCode2481~2500题目解析
java·leetcode
Flynn Liang1 小时前
同一需求三套写法:用 Spring AI、LangChain4j、AgentScope Java 各实现一个带工具调用的 RAG 助手(实战对比)
java·人工智能·大模型·架构设计·spring ai·langchain4j·agentscope
聪明的笨猪猪2 小时前
实际工程问题:AI 生成 Spring Cache(@Cacheable / @CachePut / @CacheEvict)缓存注解踩坑
java·经验分享·面试·ai编程
用户956256254292 小时前
跟做:Firecrawl 单页转 Markdown 再丢进沙箱总结
python·api
愿有所息2 小时前
记一次 ARM64 + JDK8 上 fastjson2 的诡异数据错乱
java
威哥爱编程2 小时前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
秋饼2 小时前
MCP 2026-07-28 无状态协议大改版:Spring AI 2.1 多轮往返请求与网关路由落地
java·ai·技术分享·后端开发
威哥爱编程3 小时前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos
fthux3 小时前
总想着“忙完再休息”?让 Tick Rest 提醒你,先歇一会儿
开源·github·mac·swift·提醒·消息提醒·tick rest·tick rest for mac·消息提醒app
2601_967980113 小时前
Python行情API量化 02:顺序拉 20 要 2 秒?并发批量把时间压到 0.5 秒
python·api·限流·并发·量化