java swing中使用jsch做sftp文件上传
来源:互联网 发布:python和c语言 编辑:程序博客网 时间:2024/05/14 20:20
Jsch
JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,也可以集成它的功能到自己的应用程序。
SFTP
SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式。SFTP是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。(来自百度的解释)
要使用JSch,需要下载它的jar包,请从官网下载它:http://www.jcraft.com/jsch/
JSch支持三种文件传输模式:
OVERWRITE
完全覆盖模式,默认文件传输模式
RESUME
恢复模式,如果文件已经传输一部分,这时由于网络或其他任何原因导致文件传输中断,如果下一次传输相同的文件,则会从上一次中断的地方续传
APPEND
追加模式,如果目标文件已存在,传输的文件将在目标文件后追加
ChannelSftp类是JSch实现SFTP核心类,它包含了所有SFTP的方法,如:
put(): 文件上传
get(): 文件下载
cd(): 进入指定目录
ls(): 得到指定目录下的文件列表
rename(): 重命名指定文件或目录
rm(): 删除指定文件
mkdir(): 创建目录
rmdir(): 删除目录
这里省略了方法的参数swing中使用jsch做sftp文件上传
public class FileChooser extends JFrame implements ActionListener {/** * jsch 通过sftp上传文件 */private static final long serialVersionUID = 1L;// 初始化参数--------------------------------static String url = "162.2.11.190";static String username = "root";static String password = "cnp200@HW";// 初始化参数--------------------------------private static ChannelSftp channelSftp;JButton open = null;public static void main(String[] args) {new FileChooser();}public FileChooser() {JFrame jframe = new JFrame();// 实例化一个JFrameJPanel jPanel = new JPanel(); // 创建一个轻量级容器JToolBar jToolBar = new JToolBar(); // 提供了一个用来显示常用的 Action 或控件的组件jframe.setVisible(true);// 可见jframe.setSize(500, 500);// 窗体大小jframe.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);// close的方式jframe.setContentPane(jPanel); // 设置 contentPane 属性。JLabel jl = new JLabel("请选择:");// 创建一个Label标签jl.setHorizontalAlignment(SwingConstants.LEFT);// 样式,让文字居中jPanel.add("North", jl);// 将标签添加到容器中jPanel.add("North", jToolBar);jPanel.add("North", jToolBar);open = new JButton("上传文件");// 将上传文件按钮添加到容器中open.addActionListener(this);jToolBar.add(open);}@Overridepublic void actionPerformed(ActionEvent e) {try {// TODO Auto-generated method stubJFileChooser jfc = new JFileChooser();jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);jfc.showDialog(new JLabel(), "选择");/** 得到选择的文件* */File file2 = jfc.getSelectedFile();System.out.println(file2);// 1、创建JSch类,好比是FlashFXP工具JSch jsch = new JSch();// 2、创建本次的文件传输会话对象,并连接到SFTP服务器。它好比是通过FlashFXP工具连接到SFTP服务器Session session = jsch.getSession(username, url, 22);session.setPassword(password);Properties config = new Properties();config.put("StrictHostKeyChecking", "no");session.setConfig(config);session.connect();// 3、在该session会话中开启一个SFTP通道,之后就可以在该通道中进行文件传输了channelSftp = (ChannelSftp) session.openChannel("sftp");channelSftp.connect();FileInputStream input = null;// 4、进行文件传输操作:put()、get()....input = new FileInputStream(file2);String dst = "/opt/222.txt";channelSftp.put(input, dst, ChannelSftp.OVERWRITE);input.close();} catch (Exception e2) {e2.printStackTrace();}// 5、操作完毕后,关闭通道并退出本次会话if (channelSftp != null && channelSftp.isConnected()) {channelSftp.disconnect();}}}
1 0
- java swing中使用jsch做sftp文件上传
- 使用java sftp: jsch
- JAVA使用JSCH实现SFTP文件管理(上传、下载等)
- JSch - Java实现的SFTP(文件上传详解篇)
- JSch - Java实现的SFTP(文件上传详解篇)
- JSch - Java实现的SFTP(文件上传详解篇)
- JSch - Java实现的SFTP(文件上传详解篇)
- JSch - Java实现的SFTP(文件上传详解篇)
- JSch - Java实现的SFTP(文件上传详解篇)
- JSch - Java实现的SFTP(文件上传详解篇)
- JSch - Java实现的SFTP(文件上传详解篇)
- JSch - Java实现的SFTP(文件上传详解篇)
- JSch:纯JAVA实现SFTP文件上传和下载
- JSch - Java实现的SFTP(文件上传详解篇)
- JSch:纯JAVA实现SFTP文件上传和下载
- JSch:纯JAVA实现SFTP文件上传和下载
- JSch - Java实现的SFTP(文件上传详解篇)
- JSch - Java实现的SFTP(文件上传详解篇)
- SPARK各种提交方式总结
- Echart 如何显示百分比
- PL SQL的事务管理
- 【智库2861】大数据和小数据
- Android EditText弹出软键盘实现页面标题头不动,软键盘弹出在编辑框下面
- java swing中使用jsch做sftp文件上传
- Java开发Excel POI getPhysicalNumberOfCells 与 getLastCellNum的区别
- 数据库
- spring Cloud笔记
- Mac 隐藏文件查看及关闭
- 除法取模与逆元
- Go语言学习笔记(五)-其他类型(指针、结构体、、)
- ArrayList的add和remove方法
- Android提供了一个名为SQLiteDatabase的类