使用java实现windows与linux文件互相传递
来源:互联网 发布:matlab画图编程例题 编辑:程序博客网 时间:2024/06/06 10:51
最近公司的一个小项目需要在linux远端服务器上运行然后获取结果到本地用户目录下,当时为这个搜遍了百度,想破了脑袋。
记录一下,万一以后需要用,可以少走一些弯路。
环境准备:
- JDK
- pscp.exe
我尝试过的方法
一开始想在linux上执行
- 获取本机的ip,通过pscp到本机的路径
–想法很美好,但是没有成功,不知道原因。 - 在linux上安装sz rz
– 这个可能是因为我用putty连接到远端的原因,安装成功可以运行,但是没有跳出图形化界面而是出现乱码 - 在windows与linux之间通过ftp传输
–公司的服务器,公司的电脑,不让连ftp
然后觉得如果在linux上运行,很难获取到本地的路径,需要放到用户目录下,不能写死。
然后就选择在本地客户端执行
- 通过运行cmd调用pscp命令
–这里就涉及到pscp之后需要输入密码,这样一个交互的动作
–用过getInputStream,然后write
–连不上
–再加个flush()
–还是连不上
–很绝望
然后我就去百度不用输入密码的办法,还真的找到了解决办法。
@mipademiao Process process = Runtime.getRuntime().exec( "cmd.exe /c pscp -r -l "+username.getText()+" -pw "+password.getText()+" -P "+port.getText()+" "+ip.getText()+":"+remotePath+" "+targetPath); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream())); BufferedReader errReader = new BufferedReader( new InputStreamReader(process.getErrorStream())); while ((err = errReader.readLine()) != null) System.out.println(err); while ((str = bufferedReader.readLine()) != null) System.out.println(str); process.destroy();
详细解释下命令行的内容
“cmd.exe /c pscp -r -l “+username+” -pw “+password+” -P “+port+” “+ip+”:”+remotePath+” “+targetPath);
- cmd.exe /c 调用cmd
- pscp 运行pscp
- -r 类似scp/cp中的-r,可以把整个文件夹下载下来,如果去掉就可以下载单个文件。
- -l 用户名
- -pw 密码
- -P port端口,注意这里是大写的P
- ip 你要下载文件所在的远端服务器ip
- remotePath 你要下载文件所在的路径
- targetPath 你希望文件存储的本地路径
阅读全文
1 0
- 使用java实现windows与linux文件互相传递
- 使用putty从windows下访问Linux 使用pscp实现windows与linux间传递文件
- windows与linux系统互相拷贝文件
- 用pscp.exe 实现windows 与 linux 之间传递文件
- ubuntu实现linux与windows的互相复制与粘贴
- linux与windows互相访问
- java 实现 图片文件 与 byte 数组互相转换
- java 实现文件互相copy
- 使用Samba实现Linux与Windows文件共享实践
- 使用Samba实现Linux与Windows文件共享实践
- 使用Samba实现Windows与Linux主机之间文件共享
- 使用xshell远程软件在linux OS与Windows OS之间进行文件传递
- 使用Handler实现主线程与子线程之间互相传递消息
- linux和windows互相访问共享文件
- 使用java实现windows与linux之间的文件传输
- (虚拟机)linux与windows互相访问
- windows与linux的互相访问
- Windows与Linux共享文件夹互相访问
- 程序员职业生涯全攻略
- HDU 5692 Snacks 【DFS序+线段树】
- 一波文学手机电子书
- hadoop集群搭建
- -----找规律 hdu 6090-Rikka with Graph
- 使用java实现windows与linux文件互相传递
- 最少转机-图的广度优先遍历
- 自定义微信登录扫码样式解决办法
- 刷题——Layout POJ
- 搞学术离不开的那些数学—概率论与数理统计
- 数据库相关知识点总结
- 微信小程序实战(二)---实现搜索页面
- Codeforces Round #411 A.Fake NP【数论有关因数结论+经验】
- MySQL--操作简记(where过滤,通配符过滤数据)