需要jar包:
ganymed-ssh2-build210.jar (放在需要跑的项目中)
jad.exe(在eclipse中跑的话,需要设置路径,windows-preferences-java-jadclipse中的path to decompiler设置为jad.exe的放置目录)
---------------controller
public static Connection conn = null;
boolean ifLogin=login(); //能否登陆
String path="/ciod/autodev/bin/aa.out"; //服务器目录下的文件
String localPath="d://tmp1//"; //本地目录,没有需要新建
copyFile(conn,path,localPath); //服务器下载到本地
conn.close();
---------具体方法
//登陆远程
public boolean login(){
//创建远程连接,默认连接端口为22,如果不使用默认,可以使用方法
//new Connection(ip, port)创建对象
conn = new Connection("111.1.1.11");
try {
//连接远程服务器
conn.connect();
//使用用户名和密码登录
return conn.authenticateWithPassword("user", "12345");
} catch (IOException e) {
System.err.printf("用户%s密码%s登录服务器%s失败!", "user", "12345", "111.1.1.11");
e.printStackTrace();
}
return false;
}
-----下载
public void copyFile(Connection conn, String fileName,String localPath){
SCPClient sc = new SCPClient(conn);
try {
sc.get(fileName,localPath");
} catch (IOException e) {
e.printStackTrace();
}
}
---删除
/**
* 在远程LINUX服务器上,在指定目录下,删除指定文件
* @param[in] fileName 文件名
* @param[in] remotePath 远程主机的指定目录
* @return
*/
public void delFile(String remotePath, String fileName){
try {
SFTPv3Client sft = new SFTPv3Client(conn);
//获取远程目录下文件列表
Vector<?> v = sft.ls(remotePath);
for(int i=0;i<v.size();i++){
SFTPv3DirectoryEntry s = new SFTPv3DirectoryEntry();
s = (SFTPv3DirectoryEntry) v.get(i);
//判断列表中文件是否与指定文件名相同
if(s.filename.equals(fileName)){
//rm()方法中,须是文件绝对路径+文件名称
sft.rm(remotePath + s.filename);
}
sft.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}